Pythonいぬ

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

2020-03-01から1ヶ月間の記事一覧

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などにどのようにアクセスするかを調べてみた。 単純に…

Pytorchでネットワーク重みの初期値を固定

Pytorchでネットワークの挙動に再現性を持たせたい。しかしPytorchでは、デフォルトではネットワークの重みは乱数で初期化され、乱数のシード値も固定されていない。Pytorchで乱数シードを固定してネットワークの初期値に再現性をもたせる方法を調べてみた。…

PytorchでDataLoaderからデータを取り出す

PytorchのDataLoaderって便利だなと思いつつも、forループ以外の方法でデータを取り出すことができなかったので、中身を少し調べてみた。以下のようにすればデータがとれることがわかった。 tmp = testloader.__iter__() x1, y1 = tmp.next() x2, y2 = tmp.n…