TensorFlow for C をインストールしよう

TensorFlow for C をインストールしよう AI・機械学習・ディープラーニング
TensorFlow for C をインストールしよう

本記事は、Tensorflowの本家サイトの「 Installing TensorFlow for C」を翻訳(適宜意訳)したものです。誤り等あればご指摘いただけたら幸いです。

TensorFlow for C をインストールしよう

TensorFlowはc api.hで定義されているC APIを提供しています。これは他の言語に結合するのに適しています。

サポートされるプラットフォーム

次のオペレーティングシステムでTensorFlow for Cをインストールすることができます。

  • Linux
  • Mac OS X

インストール

TensorFlow for Cライブラリをインストールし、TensorFlow for Cを有効にするには、次の手順を実行します。

1. CPUでTensorFlowを実行するか、GPUを使用してTensorFlowを実行するかを決定します。 決定を手助けするために、次のいずれかのガイドの「インストールするTensorFlowの決定」セクションを読んでください。

2.次のシェルコマンドを実行して、TensorFlow Cライブラリを /usr/local/lib にダウンロードして解凍します。

 TF_TYPE="cpu" # Change to "gpu" for GPU support
 OS="linux" # Change to "darwin" for Mac OS
 TARGET_DIRECTORY="/usr/local"
 curl -L \
   "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-${TF_TYPE}-${OS}-x86_64-1.3.0.tar.gz" |
   sudo tar -C $TARGET_DIRECTORY -xz

tarコマンドは、TensorFlow CライブラリをTARGET_DIRECTORYlibサブディレクトリに解凍&展開します。たとえば、TARGET_DIRECTORYとして /usr/local を指定すると、tarはTensorFlow Cライブラリを /usr/local/lib に解凍&展開します。

ライブラリを別のディレクトリに展開する場合は、それに応じてTARGET_DIRECTORYを調整しましょう。

3.ステップ2で、TARGET_DIRECTORYとしてシステムディレクトリ(たとえば、/usr/local)を指定した場合は、ldconfigを実行してリンカーを設定します。(ldconfitコマンドについて参考ページ

sudo ldconfig

システムディレクトリ以外のTARGET_DIRECTORY(たとえば、~/mydir)を割り当てた場合は、抽出ディレクトリ(たとえば、~/mydir/lib)を2つの環境変数に追加する必要があります。

 export LIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib # For both Linux and Mac OS X
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib # For Linux only
 export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/mydir/lib # For Mac OS X only

インストールを検証する

TensorFlow for Cをインストールした後、hello_tf.cという名前のファイルに次のコードを入力します。

#include <stdio.h>
#include <tensorflow/c/c_api.h>

int main() {
  printf("Hello from TensorFlow C library version %s\n", TF_Version());
  return 0;
}

ビルドと実行

hello_tf.cをビルドするには、次のコマンドを実行します。

gcc hello_tf.c

結果の実行可能ファイルを実行すると、次のメッセージが出力されます。

a.out
Hello from TensorFlow C library version number

トラブルシューティング

プログラムの構築に失敗した場合は、gccがTensorFlow Cライブラリを見つけることができない可能性が最も高いです。この問題を解決する方法のひとつは、gccコマンドに-I-Lオプションを指定することです。たとえば、TARGET_LIBRARYが /usr/local の場合、次のようにgccを呼び出します。

gcc -I/usr/local/include -L/usr/local/lib hello_tf.c -ltensorflow

a.outの実行に失敗した場合は、以下について確認してみましょう。

  • プログラムにバグはありませんか?間違いなく記述されていますか?
  • インストールの手順3で説明した環境変数に正しいディレクトリを割り当てましたか?
  • これらの環境変数をエクスポートしましたか?

ビルドまたは実行のエラーメッセージが表示されている場合は、可能なソリューションについてStackOverflowを検索(または投稿)してください。