Pythonいぬ

pythonを使った画像処理に関する記事を書いていきます

Pytorchでkerasのsummaryをやる

kerasを使っていたときは、model.summary()という関数があって、ネットワークの各レイヤにおける出力サイズがどうなっていくかを簡単に可視化できていた。 Pytorchはdefine by runなのでネットワーク内の各層のサイズはforward処理のときに決まる。なのでな…

PytorchのDataLoaderから任意のバッチを出力

Pytorchで自作Datasetを作って、さらにDataLoaderからのバッチ出力を(x, y)だけではなく(x1, x2, y)とか(x, y, c)などと自由に制御したいときがある。 例えばtriplet lossを使いたいときは、ターゲットクラスyに対して複数の入力(x1, x2)を取ってくる必要が…

Pytorch で VAE の実装と画像生成

PytorchでVAEをやってみる。理論的なところは他に説明がたくさんあるので省略する。VAEは最初から自分で書こうとするといろんなところでハマるので、とりあえず動くモデルを載せてみることにする。 VAEモデルの定義 まずはモデルの実装から。学習はネットワ…

pythonのlistから特定文字列を含む要素を抽出

pythonのlistで指定した文字列を含む要素だけを抽出したい。linuxでいうgrep的なことをlistやりたい。 listから特定の文字列を含む要素を抽出 以下のようにすると指定した要素を取り出せる。keyに探したい言葉を入れる。mylistは検索対象のリスト。outが出力…

Pytorchでdeep dreamをやってみる

Deep dreamが出た頃はまだtensorflowも公開されておらず、ディープラーニングはpythonというよりは、LuaやC++で書かれていた。懐かしのDeep dreamをpytorchを使って実装してみる。 下記のようなアナザーワールドを作ってみよう。 実装上のポイント 実装上の…

Pytorchでモデルの保存と読み込み

Pytorchでモデルを学習した後にモデルの学習済み重みパラメータを保存して、別のプログラムで読み込みたい。特にGPUで学習したモデルを、GPUを持たないCPUのみのPCで使いたい場合によくハマるのでメモを残しておく。 GPUで学習してGPUで読み込む 保存方法(GP…

Pytorch でOptimizerのパラメータにアクセス

Pytorchはdefine by run(実行しながら定義)なライブラリなので、 学習の途中でoptimizerにアクセスして、 learning rateを変更したりしてみたい。ということで、optimizerを定義した後でlearning rateなどにどのようにアクセスするかを調べてみた。 単純に…