Maven で TensorFlowを使ってみる

eclipseでTensorFlowを使うプロジェクトの作成方法をご紹介します。前回の記事で作成した Maven プロジェクトを活用して TensorFlow を使ってみます。

Maven で Hello
新規 > Mavenプロジェクト シンプルなプロジェクトにチェックを入れて次へ グループi...

今回はTensorFlow公式サイトのチュートリアルに従い “Hello” をコンソール出力します。

TensorFlowインストール

TensorFlow公式サイトのインストール方法を確認します。

pom.xml をテキスト形式で開いて、上記のXMLをコピペします。

<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
<version>1.8.0</version>
</dependency>

TensorFlowビルド方法指定

次にプロパティーを追加してビルド方法を指定します。公式サイトのプロパティー追加方法を確認して次のように追加します。

コピペ用にテキストも置いておきます。

<project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.myorg</groupId>
      <artifactId>hellotensorflow</artifactId>
      <version>1.0-SNAPSHOT</version>
      <properties>
        <exec.mainClass>HelloTensorFlow</exec.mainClass>
        <!-- The sample code requires at least JDK 1.7. -->
        <!-- The maven compiler plugin defaults to a lower version -->
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.tensorflow</groupId>
          <artifactId>tensorflow</artifactId>
          <version>1.14.0</version>
        </dependency>
      </dependencies>
    </project>  

上記のプロパティーを追加しないと、こんなエラーが出ます。

try-with-resourceは-source 1.5でサポートされていません

これは Maven では java の標準コンパイルのバージョンが古いためです。プロパティーを記載してビルド方法を指定するとエラーが解消されます。TensorFlow公式では上記のとおり1.7にしていますね。

ソースコード作成

次にソースコードを書いていきます。まずクラスを作成します。

クラス名やパッケージ名は公式サイトに合わせておきましょう。

クラスの内容は、公式サイトをコピペしましょう。

そのままだと警告が出るので、気になる方は @SuppressWarnings(“rawtypes”) を追記しましょう。

そしたら実行してみましょう。次のようにコンソールに表示されたら成功です。

Hello from 1.8.0

赤文字でこんな文章が出るかと思いますが、これはGPUを使用してtensorflowを動かすように促しています。

2018-06-10 16:33:10.639926: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

GPUを使用する場合

公式サイトにもGPUを使用する方法が記載されています。システムを稼働させるハードウェアがGPUを使用できる場合には、次のMaven設定をしてGPUを使用した方が処理が早くなります。

重い処理が必要な場合にはGPU対応させておくと便利です。 ただ今回のようにHello from 1.8.0 を出すだけでは必要ないですね。




Let's share SNS