配列の形状(Shape)のコメントを付けるJupyter Notebook拡張を作った
加筆(2019/12/12)
注意 JupyterNotebook拡張は使いづらかったので,IPython拡張としてリニューアルしました. こちらを使ってください.
このページを読む代わりに,下の記事を読むことをお勧めします. (検索順位はこのページの方が高いので微妙な気持ちです・・・) shiba6v.hatenablog.com
続きを読むNumPyやPyTorchで使える超便利ツールを作った
この記事は,CAMPHOR- Advent Calendar 2018の7日目の記事です.
この記事は,NumPyやPyTorchなどの開発に使える「shape_commentator」という便利ツールを使った話です.このツールはpipでインストールできるので,サクッと試してみたい方はGitHubのページに飛んで使ってみてください.
加筆修正(2019/12/12) IPython拡張を追加したことでIPythonやJupyterNotebookでの使い心地が良くなったので,IPythonの例の部分を中心に一部修正しました.
はじめに
こんにちは.シバニャンです.最近は卒論で画像系の研究をしています.
卒業研究ではNumPyやPyTorchを使ってコーディングしているんですが,今までUnityのコードをC#で書いてVisual Studioのコード補完のぬるま湯に浸かってきた僕とっては,型が明示的でないコードで計算を書いていくのが難しく思えました.
NumPyの辛さ
具体的にNumPyで一番難しく感じた部分は,ソースコードを見ただけではテンソルのShapeが分からないことです.
続きを読むPyTorchのDataParallelのモデルを保存する
PyTorchで複数GPUで学習させる場合,
model = nn.DataParallel(model, device_ids=[0,1,2])
のようにDataParallelで保存しますが,このモデルを保存したい場合にcuda runtime error : out of memoryが出ることがあります.
その場合は,下のようにDataParallelから元のモデルを取り出してCPUのモデルに変えてあげることで保存できるようになります.
torch.save(model.module.cpu(),file_path)
読み込み時はこうすればOK
new_model = torch.load(file_path)
参考
Optional: Data Parallelism — PyTorch Tutorials 1.0.0.dev20181002 documentation