r0w0

PythonやDeepLearning関連で学んだこと、調べたことの備忘録

Entries from 2020-01-01 to 1 year

Docker with PyCharm

経緯と結果 Docker Desktop for Windowsのインストールに続き、普段の個人開発環境にDockerを導入してみようということで、PyCharmのインタプリタにDockerで作った環境を用いてみました。 尚、以下のような注意点があり、 PyCharmProでないとDockerとの連携…

PythonでGoogle Driveからファイルをダウンロード

背景 海外のサーバーに大きめのファイルをアップロードしたいが、FTPで直接アップロードすると時間が掛かる、あるいは通信が不安定で途中で落ちてしまう。そこで、一度Google Driveにアップロードして、それをサーバーから直接ダウンロードすることにした。 …

Docker Desktop for Windows

Dockerをそろそろ触ってみようかと思い、Docker Desktop for Windowsをインストールしました。ファイアウォールの設定で少しはまったので忘れないうちにメモ。 手順 私のラップトップはWindows 10 Homeなので、Windows Home に Docker Desktop をインストー…

SSDしか勝たん

学習に利用できるオンプレサーバーがあるのですが、他のひとも利用するので混みあってQueue待ちすることがあったので、GoogleCloudPlatformを使ってみました。 当たり前っちゃ当たり前なのですが、画像のような重たいデータを読み込んで学習する場合、HDDで…

PyTorchとTensorFlowのTransposed convolution layerの処理手続きの違い

状況 結論の概略 PyTorchが用いている処理手法 0埋めされた出力テンソルを用意 Inputのテンソルを走査 Paddingの適用 参考にしたサイト TensorFlowが用いている処理手法 InputテンソルにStrideを反映 Inputのテンソルを「カーネルで」走査 PyTorch方式とTens…

PyTorchのTensor.backwardとoptimizer.updateの関係

状況 長きに渡るデータ前処理の日々を過ごしていたらそれ以外の基本的なことを思い出せなくなっていたでござる。First In First Out. タイトルの通り、PyTorchのTensor.backwardとoptimizer.updateって何をしているのか、どういった関係にあるのかを以下に簡…

PythonのAbstractクラスの実装

状況 Pythonのクラス継承をよく使うものの、特に抽象クラスの実装をサブクラスに強制させないような実装をしていた(他人が読むコードではないので)。 実際どうやるんだろうと調べたのでサンプルコード付きで残しておく。 ポイント 抽象クラスでmetaclass引数…

ModuleNotFoundError in Python

状況 Anaconda上のJupyter notebookでの話。 あるモジュールをインストールして使おうとしたらModuleNotFoundErrorが発生。 インストールはできているし、conda install list の実行結果にも当該モジュールは含まれている。 原因1 異なる環境のPythonを参照…

PyTorch: requires_grad = False と optimizerにparamを与えないことの違い

疑問 つくりながら学ぶ! PyTorchによる発展ディープラーニングの転移学習を実装しているときに出てきた疑問。 モデルのパラメータにrequires_grad = Falseを設定することと、optimizerにparamを与えないことは動作的に異なるのだろうか。 書籍の中で、モデル…

Jupyter notebook からpythonモジュール(*.py)をImport

Motivation 関連記事は死ぬほど転がってますが、端的に自分が覚えておきたい点をまとめておきたい。 Import可能なモジュール pathが通っているフォルダに配置されているモジュールのみインポートが可能。 パスは以下で確認できる。 import sys sys.path # 'D…

Install Conda and PyTorch

きっかけ TensorbordをUninstallしたら環境が壊れてしまった。。 CondaのUpdateもCondaのバージョンとPythonがInconsistentだぞと怒られたので、Condaを再インストールすることにした。 今後同様の操作を行うかもしれないので、再インストール手順を残してお…

PyTorch: Tensorはただの行列の入れ物ではなかった

Motivation Tensor tensorは.backward()により微分される print(tensor)にNone/Falseのattributeは表示されない requires_gradはDefaultでFalse Weightはrequire_grad=Trueになっている? Operation結果によりTensorが作成されるとgrad_fnも指定される grad_…

PyTorch: Datasetの継承

疑問 PyTorchのDatasetを継承したクラスを作成するときに、super().initを呼び出す必要があるのか、という疑問。そもそも継承時の動作を忘れているのでその思い出しも含めて確認してみる。 コードはこちらの記事を参考に書いています。 継承 in python 結論…