今回は、WindowsでTensorFlowを使いたい方、特にPythonではなくC++から使いたい方に向けた情報提供をしたいと思います。
具体的には、
- TensorFlowを使いたいんだけど都合によりC++で書きたい
- TensorFlow for C++のビルドにWindowsで挑戦したい
という方々に、TensorFlow for C++をWindowsでビルドした記録を残しているブログ記事を紹介します!
それでは、行ってみましょう。
TensorFlowとは
TensorFlowは、インストールするだけで機械学習で何かができる、というものではありません。
プログラミング言語からTensorFlowを利用すると、機械学習や深層学習を利用したプログラムを簡単に開発できるというライブラリです。
もっともよく使われているのは、PythonからTensorFlowを利用する方法ですが、以下のTensorFlowのAPIドキュメントを確認すると、Pythonだけではなく、C++やJava、Go、Swiftからも利用できます。
参考:https://www.tensorflow.org/api_docs/
今回は、このC++からの利用方法に焦点を当ててみます。
なお、TensorFlowの開発はGitHubで進められており、ソースコードも自由にダウンロードできます。
TensorFlowとは何か?については、以下の記事で説明していますので、よく分からない方は確認してみてくださいね。
WindowsでTensorFlow for C++を使うならビルド必須
PythonからTensorFlowを利用する場合は、以下の記事のようにTensorFlowをインストールするだけです。
しかし、C++から利用する場合は、C++用ライブラリ(tensorflow.libとtensorflow.dll)をビルドする必要があります。
もちろん、他の人がビルドしたファイルを利用する手もあります。
以下のサイトにアクセスし、「libtensorflow-cpu-windows-x86_64.zip」をダウンロードすると、c_api.h、LICENSE、tensorflow.dllの3つのファイルを取得できます。
参考:http://ci.tensorflow.org/job/disabled-release-libtensorflow-windows/
ここから、tensorflow.libを作成する方法は、以下の記事で紹介されています。
参考:https://qiita.com/kat_out/items/695a91f13bfc992f70ef
しかし、このファイルは2018年3月の最新のビルドです。
2018年5月現在ではtensorflow.dllのビルドが停止していて、今後も最新のTensorFlowのtensorflow.dllは提供されない可能性があります。
そうなると、Windowsで最新のTensorFlowをC++から利用する場合は、自分でビルドするしかなさそうです。
Windowsでビルドに成功した方々を紹介!
では、ここからは、Windowsでビルドに成功し、それをブログ記事に書いてくださっている方々を最新の日付順に紹介していきましょう。
山岡忠夫さん
参考:http://tadaoyamaoka.hatenablog.com/entry/2018/02/26/235639
2018/2/26に書かれており、今回紹介する記事の中では、最も新しく書かれた記事です。
TensorFlow 1.5.0のビルドに成功しています。
手順も丁寧に書かれていますので、試してみる価値があるでしょう。
SHI Weiliさん
参考:https://medium.com/@shiweili/building-tensorflow-c-shared-library-on-windows-e79c90e23e6e
2018/2/13に書かれた記事です。
以下のバージョンのビルドに成功しています。
- TensorFlow 1.6.0-rc0 with CPU support
- TensorFlow 1.5.0 with GPU support
- TensorFlow 1.4.1 with GPU support
英語ですが、非常に見やすく、試したくなる記事ですね。
Muhammad Firdaus Syawaludin Lubisさん
参考:http://anonimousindonesian.blogspot.jp/2017/12/tutorial-how-to-build-tensorflow-on.html
2017/12/12に書かれた記事です。
韓国人歌手のIUさんを認識するプログラムを開発するプロジェクト「Where Are You, IU?」のチュートリアル記事の一部です。
ビデオチュートリアルも用意されていました。
参考:https://www.youtube.com/watch?v=gj_4Yv94LgQ
2017/12/12現在とのことなので、TensorFlowのバージョンはおそらくTensorFlow 1.4.1でしょう。
kino (id:quinoh)さん
参考:http://kino.hateblo.jp/entry/2017/11/06/002118
次に紹介するJoe Antogniniさんの記事のとおりにはうまくいかなかったkinoさんが、ちょっと変えたらビルドできたことを報告してくださっている記事です。
2017/11/3現在のソースコードをビルドしたということなので、TensorFlow 1.4.0の頃ですね。
Joe Antogniniさん
参考:https://joe-antognini.github.io/machine-learning/build-windows-tf
上であげた記事が参考にしている元記事で、2017/6/21に書かれています。
時期からすると、TensorFlow 1.2.0のころですね。
この記事でビルドに成功したら、次の記事を参考に、実際にプログラムを書いてみましょう。
参考:https://joe-antognini.github.io/machine-learning/windows-tf-project
まとめ
今回は、WindowsでTensorFlow for C++を利用するために、tensorflow.libとtensorflow.dllのビルドに成功した方々のブログ記事を紹介しました!
いずれも丁寧に書かれており、ビルド時間も1~2時間という報告もありますので、試してみる価値はあります。
C++で機械学習を活用したプログラムを開発するなら、TensorFlow for C++で挑戦してみてください。
うまくいったら、ブログ記事を書いていただけると、後学の人の助けになるでしょう。
それでは!