サイトアイコン NegativeMindException

Windows10でPyTorchをインストールしてVSCodeで使う

以前はWindows 10でディープラーニングするのに、AnacondaでPython環境を作ってTensorFlowを使ってVisual Studioでコーディングしてたけど、



最近はだいぶ状況が変わってきた。

Anacondaでnumpyが動かなくなったり、使いたいパッケージ(のバージョン)がcondaで入らなかったりで、そもそもAnacondaのメリットよりもデメリットで時間を取られることが増えた。(それはMinicondaでも同じ)
なので、Pythonは普通に公式のインストーラーでWindowsにインストールすることにした。

コーディング環境についても、VSCode(Visual Studio Code)が優秀だと気づいた。
VSCodeはIDEじゃなくてエディタなんだけど、Extensionをインストールして機能拡張はできる。オイラがIDEの方のVisual Studioを使っていた理由の8割ぐらいはIntelliSense(コード補完機能)だったので、同じくIntelliSenseが載っているなら動作も軽いVSCodeの方が快適なのでした。

そして、ディープラーニングのライブラリはTensorFlowからPyTorchへ乗り換えつつある。
理由はそんなにハッキリとしたものじゃないんだけど、最近は発表される論文と一緒に公開されるソースコードにPyTorch実装のものが増えている点と、対応する依存関係(CUDAのバージョンとか)のアップデートの早さとか。最近やっとバージョン1に達して、身近な人達がどんどんPyTorchへ移行しているというのもある。



ということで、今現在のオイラの環境は以下↓

一応、インストール手順もメモしておく。

PyTorch 1.0.1は現時点で最新のCUDA Toolkit 10.1とcuDNN v7.5に対応しているのであんまり気にしなくて良いけど、この手のライブラリのバージョンの依存関係は間違えるとエラー地獄にはまるのでインストール前にしっかり確認した方が良いです。(何度かハマった)

追記:PyTorchとtensorboardXを一緒に使いたい場合は、TensorBoard(というかTensorFlow)の動作環境にも合わせてやる必要があります。
https://www.tensorflow.org/install/gpu

CUDAとcuDNNのインストール

CUDAの公式ページからCUDA Toolkit 10.1のインストーラーをダウンロードしてインストール。
cuDNN v7.5.0 (Feb 25, 2019), for CUDA 10.1は、まずMembership登録してログインし、cuDNN一式のzipをダウンロードする。
そしてzipを展開して出てきたbin, include, libディレクトリを丸ごとCUDAのパスが通ったディレクトリに配置する。オイラはいつもCUDAデフォルトのインストールパスに一緒に突っ込んでいる↓

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

ところで、cuDNNってCUDA Deep Neural Network libraryの略なんですね。


スポンサーリンク

Pythonのインストール

Pythonはバージョン3.6を使う。公式ページからPython3.6.8のWindows x86-64 executable installerをダウンロードしてきて実行するだけ。
インストールパスだけデフォルトから以下に変えておいた。

C:\dev\Python36

PyTorchのインストール

PyTorchは、公式ページのSTART LOCALLYで自分の環境を選ぶと適切なpipのコマンド表示されるので、それを叩けばインストールできる↓



ということで、以下のコマンドをコマンドプロンプトで実行するだけでPyTorchのインストール完了↓

pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.1-cp36-cp36m-win_amd64.whl
pip3 install torchvision

VSCodeのインストール

VSCodeは公式ページからWindows用のインストーラーをダウンロードしてインストール。
そして日本語の言語パックPython用のExtensionもインストールする。

これでPyTorch環境は整ったので、あとは適当なサンプルコードがちゃんと実行できることを確認してみよう。
GitHubにPyTorch公式のサンプルコードがある↓
https://github.com/pytorch/examples

Basic MNIST Exampleとかが手軽で良いんじゃないでしょうか。
サンプルが実行できたらとりあえずOKだ。

追記:最近は、PyTorchに特化したIDEもある↓


PyTorchの習得

PyTorch公式サイトのサンプルで学ぶPyTorchや、
https://pytorch.org/tutorials/beginner/pytorch_with_examples.html
https://pytorch.org/tutorials/beginner/former_torchies/nnft_tutorial.html

PyTorch公式でチートシートを用意してくれているので、そこを見ると習得が速いかも。
チートシートの内容を画像化して公開している人もいる↓

小技集をJupyter Notebookにまとめている方もいる↓
https://github.com/bfortuner/pytorch-cheatsheet/blob/master/pytorch-cheatsheet.ipynb

あとは、torchvisionに有名な畳み込みニューラルネットワークが実装されているので、それを読むと真似しやすいかも↓
https://pytorch.org/docs/stable/torchvision/models.html

追記:PyTorch専用IDEも登場してる↓



スポンサーリンク

関連記事

  • AmazonEC2のインスタンスをt1.microからt2.microへ移行する
  • Mitsuba 3:オープンソースの研究向けレンダラ
  • ROMOハッカソンに行ってきた
  • ブログの復旧が難航してた話
  • Open Shading Language (OSL)
  • オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
  • FacebookがDeep learningツールの一部をオープンソース化
  • CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー
  • Dlib:C++の機械学習ライブラリ
  • 第1回 3D勉強会@関東『SLAMチュートリアル大会』
  • UnityでShaderの入力パラメータとして行列を渡す
  • Mechanizeで要認証Webサイトをスクレイピング
  • pythonの機械学習ライブラリ『scikit-learn』
  • ブラウザ操作自動化ツール『Selenium』を試す
  • 続・ディープラーニングの資料
  • Super Resolution:OpenCVの超解像処理モジュール
  • オープンソースの顔の動作解析ツールキット『OpenFace』
  • VCG Library:C++のポリゴン操作ライブラリ
  • 機械学習での「回帰」とは?
  • タマムシっぽい質感
  • オープンソースのプリント基板設計ツール『KiCad』
  • Python.NET:Pythonと.NETを連携させるパッケージ
  • PyDataTokyo主催のDeep Learning勉強会
  • WordPressのサーバ引っ越し方法を考える
  • PSPNet (Pyramid Scene Parsing Network):ディープラーニングによ...
  • GAN (Generative Adversarial Networks):敵対的生成ネットワーク
  • Google App Engine上のWordPressでAmazonJSを利用する
  • .NETで使えるTensorFlowライクなニューラルネットワークライブラリ『NeuralNetwo...
  • Unity ARKitプラグインサンプルのドキュメントを読む
  • ZBrush 2018での作業環境を整える
  • ManimML:機械学習の概念を視覚的に説明するためのライブラリ
  • BGSLibrary:OpenCVベースの背景差分ライブラリ
  • WordPress on Windows Azure
  • SONY製のニューラルネットワークライブラリ『NNabla』
  • COLMAP:オープンソースのSfM・MVSツール
  • 書籍『仕事ではじめる機械学習』を読みました
  • uGUI:Unityの新しいGUI作成システム
  • TensorSpace.js:ニューラルネットワークの構造を可視化するフレームワーク
  • Managing Software Requirements: A Unified Approach
  • Mayaのプラグイン開発
  • OpenVDB:3Dボリュームデータ処理ライブラリ
  • Deep Fluids:流体シミュレーションをディープラーニングで近似する
  • モバイルバージョンを終了