for文を回さなくても精度を判定できる訳がわからないです。
def xxx(train_X, train_y, test_X): train_X = tf.placeholder(tf.float32,[None,784]) train_y = tf.placeholder(tf.float32,[None,784]) W = tf.Variable(tf.zeros([784,10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(train_X, train_y,W)+b) pred_y = tf.placeholder(tf.float32,[None,10]) cross_entropy = -tf.reduce_sum(pred_y*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) init = tf.initialize_all_variables() correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction,"foat")) return pred_y
とMNISTを読み込んで推測する準備をするコードを記事を参考にしながら書きました。
訓練画像を入れる変数→重みの用意→バイアスの用意→ソフトマックス回帰→予想ラベルの用意→交差エントロピー→勾配硬化法→変数の初期化→正しいかの予測→精度の計算の順にコードを構築しました。
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
でもこのコードの部分がargmaxで読み込んだデータと予測したデータが一致する最大の数字を求めているとはわかるのですが、なぜfor文を回さなくても0~9までの数字のなかでどれが一番精度が高いかを判定できるのかわかりません。for文がないままでは、1回しか判定できないのでは、と思います。でもなぜ上記のコードで動くのでしょうか?参考にした記事は、
http://qiita.com/uramonk/items/c207c948ccb6cd0a1346
です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。