4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

python/torchでのデバッグ

Last updated at Posted at 2018-03-10

はじめに

私はプログラミング言語ではpythonをよく使用します。
今回はlua (torch) を触ろうとしたときにpythonと同じようなデバッグツールがないかと探して得られた知見を載せます。前半でpythonでの普段のデバッグを説明して、後半でtorchでのデバッグを説明します。

pythonでのデバッグ

普段デバッグするときはおおよそ以下の2つの手段を取ります。

  • import ipdb; ipdb.set_trace() をコード中に埋め込む
  • python -m pdb <file name>.pyで実行する

ipdb

ipdbはコード内に埋め込んで使用するものです。
非常に便利なデバッガーでinteractive shell (ipythonのインターフェース)が実行時に起動します。
補完が効くため重宝しています。

# 例
a = 3
import ipdb; ipdb.set_trace()
# ここで、interactive shellが起動
# >> a. と入力し、Tabを押すと補完が効く

pdb

実装した直後に実行しても大体エラーで落ちます。
pdbを用いて実行した場合には、エラーはデバッガーによってキャッチされます。
そのためエラーを具体的に検討しやすくなります。
実装した直後のコードを実行する際に使用することがあります。

$ python -m pdb <file name>.py
-> <file name>.pyの一行目
(pdb) 

という画面が得られるため、cと入力しEnterを押します。
するとそのままコードを実行し続け、バグが生じて落ちたときにエラー落ちせずにそこで止まってくれます

torchでのデバッグ

結論から言うといいものが見つかりませんでした。
あれば教えてください。

debug

これはipdbのようにコード内に埋め込んで使用するものです。
require 'debug'を最初に実行してライブラリをimportします。
その後、debug.debug()を止めたい所に入力すると、そこで止まります。
しかしながら、ipdbのように補完が効きません。

補足

探している最中にitorchというものを見つけました。
pythonにおけるjupyterのtorch版です。

installに向けたsetup
https://github.com/facebookarchive/iTorch#requirements

install
https://github.com/facebookarchive/iTorch#installing-itorch

実行方法
https://github.com/facebookarchive/iTorch#how-itorch-works

ipythonのバージョンが新しすぎてitorch notebook自体は使えませんでしたが、
jupyter notebookとしたときに、kernelとしてpython3以外にitorchが選択できるようになっていました。便利。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?