Pythonいぬ

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

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

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

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

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

Pytorchで取得できるMNIST系のdataset一覧

Pytorchのデータセットに入っているMNISTとその亜種について調べてみた。これらのデータセットの呼び出し方と使い方についてまとめてみる。 取得できるMNIST系データセット torchvision.datasetsに入っているMNIST系のデータセットは下記のコマンドで確認で…

PytorchでMNISTの分類をやってみる

Pytorchで自分で定義したCNNを使って、手書き数字MNISTの分類をやってみる。特にpytorchにおけるニューラルネットの書き方と、ネットワークの学習についてソースコードを交えて説明する。 ネットワークの定義 まずはネットワークの定義のやり方。pytorchでは…

Pytorch で LeNet-5 を論文どおりに実装してみる

LeNet5ライクのネットワークを実装したという記事は多いけど、LeNetを論文通りに再現してみた記事がないかなと思ったので、アーキテクチャの部分だけ再現してみた。 LeNet-5 この図の中にもSub-samplingとかGaussian connectionとか聞いたことがない言葉がち…

Pytorchでtensorのbicubic補間

pytorchでtensorの画像サイズを縮小するにはadaptive_avg_pool2dを使えばよかった。しかし拡大する際にはこの関数だとnearest neighbor になる。ということでtorch tensorでbicubic補間をやってみる。 まずは結果から。opencvでbucibucした場合とほとんど変…

Pytorch tensor と numpy ndarray の変換

Pytorch tensor から numpy ndarray への変換とその逆変換についてまとめる。単純にtorch.from_numpy(x)とx.detach().numpy()を覚えておけばよいので、その使い方を示しておく。 すぐ使いたい場合は以下 numpy to tensor x = torch.from_numpy(x.astype(np.f…