TensorFlowの日本語まとめ

TensorFlowの公式サイトに書かれている英文を英語ど素人が翻訳(日本語訳/和訳)します。 間違いがありましたら、優しく教えていただけますと幸いです。 内容を理解したら、使ってみたい。

2.計算グラフ

TensorFlowプログラムは通常、グラフを組み立てる構築段階およびグラフ中のOPSを実行するためにセッションを使用して実行段階に構造化されています


例えば、構築段階ではニューラルネットワークを表し、訓練するためのグラフを作成することが一般的です。それから、繰り返し実行フェーズのグラフに訓練のOPSのセットを実行します。

 

スポンサーリンク

 

 

TensorFlowは、C、C ++、およびPythonプログラムから使用することができます。CおよびC ++ライブラリでは利用できないヘルパー関数大きなセットを提供するので現在のグラフを組み立てるためのPythonライブラリを使用する方がはるかに簡単です

 

セッションライブラリは3つの言語のための同等の機能を持っています

 

グラフの構築

定数として任意の入力(ソース操作プログラム)を必要としないOPSとグラフスタートを構築し計算を行う他のOPSに出力を渡します。

 

PythonライブラリOPSのコンストラクタが構築されたOPSの出力を表すオブジェクトを返します。あなたが入力として使用するために、他のOPSのコンストラクタにこれらを渡すことができます。

 

TensorFlowPythonライブラリは、OPSのコンストラクタがノードを追加するために、デフォルトのグラフがありますデフォルトのグラフは、多くの用途のために十分です。明示的に複数のグラフを管理する方法のためのGraph classのドキュメントを参照してください。

import tensorflow as tf

# Create a Constant op that produces a 1x2 matrix.  The op is
# added as a node to the default graph.
#
# The value returned by the constructor represents the output
# of the Constant op.
matrix1 = tf.constant(3., 3.)

# Create another Constant that produces a 2x1 matrix.
matrix2 = tf.constant([[2.],[2.]])

# Create a Matmul op that takes 'matrix1' and 'matrix2' as inputs.
# The returned value, 'product', represents the result of the matrix
# multiplication.
product = tf.matmul(matrix1, matrix2)

 

デフォルトのグラフは現在、3つのノードがあります。:2つのOPS constant()  と 1つのOP  matmul() です。実際に行列を乗算し、乗算結果を取得するには、セッションのグラフを起動する必要があります。

 

セッション中のグラフの起動

起動は構築に引き続きます。グラフを起動するには、Sessionオブジェクトを作成します。引数を指定しないセッションのコンストラクタは、デフォルトのグラフ起動します。


完全なセッションAPIの Session classを参照してください。

# Launch the default graph.
sess = tf.Session()

# To run the matmul op we call the session 'run()' method, passing 'product'
# which represents the output of the matmul op.  This indicates to the call
# that we want to get the output of the matmul op back.
#
# All inputs needed by the op are run automatically by the session.  They
# typically are run in parallel.
#
# The call 'run(product)' thus causes the execution of threes ops in the
# graph: the two constants and matmul.
#
# The output of the op is returned in 'result' as a numpy `ndarray` object.
result = sess.run(product)
print(result)
# ==> 12.

# Close the Session when we're done.
sess.close()

セッションは、リソースを解放するために閉じる必要があります。あなたは、また、"with"ブロックと一緒にSessionを入力することができます。Sessionは、"with"ブロックの終わりに自動的に閉じます。

with tf.Session() as sess:
  result = sess.run([product])
  print(result) 

TensorFlowの実装は、CPUまたはコンピュータのGPUカードの1つとして利用可能な計算リソース間で分散実行可能な操作グラフ定義を変換します。一般的には明示的にCPUやGPUを指定する必要はありません。できるだけ多くの操作がある場合、TensorFlowはあなたの最初のGPUを使用しています。

 

あなたのマシンで利用可能な複数のGPUを使用している場合はまずあなたが明示的OPSをGPUに割り当てる必要があります操作に使用するCPUやGPUを指定する"with...Device"を使用します。

with tf.Session() as sess:
  with tf.device("/gpu:1"):
    matrix1 = tf.constant(3., 3.)
    matrix2 = tf.constant([[2.],[2.]])
    product = tf.matmul(matrix1, matrix2)
    ...

 

デバイスは、文字列で指定されています現在サポートされているデバイスは、次のとおりです。

  • "/cpu:0": あなたのマシンのCPUです。
  • "/gpu:0": もし一つ持っているのであれば、あなたのマシンのGPUです。
  • "/gpu:1": あなたのマシンの2番目のGPUです。等

 GPUTensorFlowの詳細については、Using GPUs を参照してください

f:id:TensorFlow:20160101203154j:plain

(原文サイト)