【TensorFlow入門】C++から使ってみよう

今回は、WindowsTensorFlowを使いたい方、特にPythonではなくC++から使いたい方に向けた情報提供をしたいと思います。

具体的には、

  • TensorFlowを使いたいんだけど都合によりC++で書きたい
  • TensorFlow for C++のビルドにWindowsで挑戦したい

という方々に、TensorFlow for C++をWindowsでビルドした記録を残しているブログ記事を紹介します!

それでは、行ってみましょう。

目次

TensorFlowとは

TensorFlowは、インストールするだけで機械学習で何かができる、というものではありません。

プログラミング言語からTensorFlowを利用すると、機械学習や深層学習を利用したプログラムを簡単に開発できるというライブラリです。

もっともよく使われているのは、PythonからTensorFlowを利用する方法ですが、以下のTensorFlowのAPIドキュメントを確認すると、Pythonだけではなく、C++JavaGoSwiftからも利用できます。

参考: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.hLICENSEtensorflow.dllの3つのファイルを取得できます。

tensorflow-c01

参考:http://ci.tensorflow.org/job/disabled-release-libtensorflow-windows/

ここから、tensorflow.libを作成する方法は、以下の記事で紹介されています。

tensorflow-c02

参考:https://qiita.com/kat_out/items/695a91f13bfc992f70ef

しかし、このファイルは2018年3月の最新のビルドです。

2018年5月現在ではtensorflow.dllのビルドが停止していて、今後も最新のTensorFlowのtensorflow.dllは提供されない可能性があります。

そうなると、Windowsで最新のTensorFlowをC++から利用する場合は、自分でビルドするしかなさそうです。

Windowsでビルドに成功した方々を紹介!

では、ここからは、Windowsでビルドに成功し、それをブログ記事に書いてくださっている方々を最新の日付順に紹介していきましょう。

山岡忠夫さん

tensorflow-c03

参考:http://tadaoyamaoka.hatenablog.com/entry/2018/02/26/235639

2018/2/26に書かれており、今回紹介する記事の中では、最も新しく書かれた記事です。

TensorFlow 1.5.0のビルドに成功しています。

手順も丁寧に書かれていますので、試してみる価値があるでしょう。

SHI Weiliさん

tensorflow-c04

参考: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さん

tensorflow-c05

参考: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)さん

tensorflow-c06
参考:http://kino.hateblo.jp/entry/2017/11/06/002118

次に紹介するJoe Antogniniさんの記事のとおりにはうまくいかなかったkinoさんが、ちょっと変えたらビルドできたことを報告してくださっている記事です。

2017/11/3現在のソースコードをビルドしたということなので、TensorFlow 1.4.0の頃ですね。

Joe Antogniniさん

tensorflow-c07

参考: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++で挑戦してみてください。

うまくいったら、ブログ記事を書いていただけると、後学の人の助けになるでしょう。

それでは!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次