TensorFlowの日本語まとめ

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

3. モデルのトレーニング

私たちは私たちのモデルとトレーニングコスト関数が定義されているからには、TensorFlowを使用して訓練することは簡単です。TensorFlow全体計算グラフを知っているので、変数のそれぞれに対するコスト勾配を見つけるために自動微分を使用することができますTensorFlowは、様々な最適化アルゴリズムのビルトインを持っています。この例では、クロスエントロピーを下降し、0.01のステップ長で、最急勾配降下を使用します。

 

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

 

スポンサーリンク

 

 

TensorFlowが実際にその一列でやったことは、計算グラフ新しい操作追加することでしたこれらの操作は、勾配を計算するパラメータ更新手順を計算し、パラメータに更新ステップを適用するものが含まれています。

 

返された操作train_step実行時に、パラメータに勾配降下の更新を適用します。モデルを訓練することは、したがって、繰り返し実行されているtrain_stepによって達成することができます

for i in range(1000):
  batch = mnist.train.next_batch(50)
  train_step.run(feed_dict={x: batch[0], y_: batch[1]})

 トレーニングの反復は、私たちは50の訓練例をロードします。それから、訓練例と一緒にplaceholderテンソルxとy_を交換し、feed_dictを使用して、train_stepの動作を実行します。あなたがfeed_dict使用して計算グラフ内の任意のテンソルを置き換えることができることに注意してください - それは、単にplaceholdersに制限はありません。

 

モデルを評価します

私たちのモデルは、どれだけをしましたか?

 

まず、私たちは、正しいラベルを予測されたことを把握します。tf.argmaxはあなたと同じ軸に沿ったテンソルで最も高いエントリのインデックスを与える非常に便利な機能ですtf.argmax(y_,1)は真のラベルですが、例えば、tf.argmax(y,1)は、私たちのモデルラベルは、各入力のための最も可能性が高い考えです。私たちはあなたの予測は真実に一致するかどうかをチェックするためにtf.equalを使用することができます。

 

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

 

それは私たちにブール値のリストが表示されます正しいものの割合を決定するために、私たちは、浮動小数点数にキャストして、平均値を取ります。例えば、[True, False, True, True]は0.75となる[1,0,1,1]となります。

 

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

 

最後に、テストデータ上の精度を評価することができます。これは、約91%の確率で正確であるべきです

 

print(accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

 

f:id:TensorFlow:20160111081008j:plain

(原文サイト)

Deep MNIST for Experts