👨💻
jupyter notebookのpdbメモ
概要
jupyter notebookでpdbを使ってデバッグするときのtips
例外が発生したあとにデバッグ開始
%debug
例外が発生したときに自動でデバッグ開始
%pdb on
指定のコードに到達したときにデバッグ開始
import pdb;pdb.set_trace()
cheat sheet
ライブラリ内の特定の行にブレイクポイントを貼る
transformersのLlamaTokenizerFastクラスのデバッグをしたい時の例
解析したいクラスのファイルパスを取得
import inspect, transformers, subprocess
file_path = inspect.getfile(transformers.models.llama.modeling_llama)
print(file_path)
/usr/local/lib/python3.10/dist-packages/transformers/models/llama/modeling_llama.py
ブレイクポイントをいれる行数を特定するためにファイルの中身を表示
print(subprocess.run(f"cat {file_path} | awk '{{print NR, $0}}'", shell=True, capture_output=True, text=True).stdout)
ソースコードが表示される
止めたい行にブレイクポイントを貼る
b /usr/local/lib/python3.10/dist-packages/transformers/models/llama/modeling_llama.py:1176
Discussion