なぜWindows? なぜオフライン?
機械学習・ディープラーニングの環境は、インターネットに接続できるMacやLunuxで構築するのが一般的だと思います。しかし、事情により「オフライン(インターネット非接続)」の「Windows7マシン」に環境構築しなければならなくなりました。
Windowsとういだけで警戒しますが、さらにオフライン。
なぜこんなしばりかというと、データ分析案件でかなり機密度の高いデータを扱う必要があり、自社にデータを持ってくることも、クラウドにアップすることも許されないため、すべてお客様先で完結させる必要があるためです。ディープラーニングをデータ分析用途に使おうとする場合には、考えられる状況ではないでしょうか。
ちょっと調べてみると、結構面倒そうな情報ばかりで、はまりそうな予感がします。
結論を先に書いておくと、あっさり簡単にできました。
TensorflowのWindowsへのインストール自体は、オンライン環境下であれば特筆すべき事はなく、普通にpip
やconda
を使ってインストール可能です。proxy環境下でも、環境変数やAnacondaの設定ファイルにproxy設定をしてやれば問題ありません。(調べればすぐ情報は見つかると思うので、ここでは割愛します)
2016年11月、Tensorflowが 0.12になってから、Windowsを正式サポートしたことは大きいかもしれません。
なので、オフラインインストールをどうするか、ということがポイントになります。
ディープラーニングだけ?
この後の手順を見て頂ければ分かる通り、結局は「pipインストールのオフライン実行」というだけでしたので、ディープラーニングライブラリに限らず、pipインストール可能なパッケージ全般 で有効です。
環境
以下、インストールに必要なファイルを用意するためのマシンを「オンライン機」、インストール対象のマシンを「オフライン機」と呼ぶことにします。
オンライン機、オフライン機は、Windowsであることと、Pythonの2系・3系が合っていれば良いのではないかと思います。(多分)
- Windows7(GPU非搭載)
- Anaconda3-4.2.0(Python3.5)
最近、Python3.6がリリースされ、Anacondaも最新はPython3.6です。
Tensorflowは、2017/2/16現在、Python3.6はサポートしていないので、こちらから過去バージョンのインストーラをダウンロードしてください。 - Tensorflow0.12
注意 :
この記事を書いていた2017/2/16にTensorflow1.0がリリースされました。
1.0でも同じ手順でエラーなくインストールが出来ますが、従来のコードで稼働確認をしたところエラーが発生します。これがインストールや環境の問題なのか、仕様が変わってコードを書き換えるべきな問題なのか、現時点で確認できていません。
1.0をインストールする場合は、そのようなリスクがある事を考慮してください。
原因が分かったら、記事を更新します。
オフライン機では、あらかじめAnacondaをインストールしておき、Python, pipが使える状態にしておいてください。Anacondaは、インストーラを使って特に問題なくオフラインインストールすることができますので、手順は割愛します。
手順
1.オンライン機での作業
作業1
対象のライブラリ、パッケージは、まとめて処理できるようにファイルに記しておきます。
tensorflow
Keras
注意: 前述の通り、執筆時点のTensorflowの最新版は1.0ですので、上記のようにバージョンを指定しないと最新の1.0をインストールする事になります。過去のバージョンを指定する場合は以下のようにしてください。
tensorflow==0.12.0
Keras==1.1.2
依存関係は勝手に解決してくれるので、直接必要なものだけ書いておけば良いです。
もちろん、ディープラーニングに関わらず、他のパッケージもインストールでるので、必要なものがあれば適宜一緒に書いておいてください。インストールしたいものが多い場合は、以下の実行結果ファイルを編集すると効率的です。
pip freeze > packages.txt
作業2
以下のpip
コマンドを実行します。ここでは、ライブラリのインストールは行わずにダウンロードだけ行います。
REM pip install --download だと警告が出る
pip download -d <ファイル出力先ディレクトリ> -r packages.txt
これにより、指定したものだけでなく、依存関係があるものもまとめて.whlや.tar.gz のファイルとしてダウンロードされます。
2.オフライン機での作業
作業1
オンライン機でダウンロードしたファイルとpackages.txtを、オフライン機にコピーします。
作業2
以下のコマンドを実行します。
REM C:\temp\aaa\bbb のようなWindowsの一般的なパスの記法でOK
set package_dir=<ダウンロードしたパッケージファイルのディレクトリ>
pip install --no-index --find-links=file://%package_dir% -r packages.txt
Anacondaをあらかじめインストールしておけば、それ以上になにかをインストールしておく必要はありません。
ビルド環境などは不要でした。
Chainerは?
ChainerはWindowsを正式サポートしていませんが、きっとビルド環境など他の条件を整えておけば同様に出来ると思われます。現時点では未確認なので、近いうちに確認します。
ただ、業務で使用するなら、単に使えるかどうかだけでなく、正式にサポートされたものかが条件になる場合もあります。サポート外のものを使用して、わからないところでちゃんと機能しないと困りますからね。