はじめまして、先日からTensorflowを触りだした
初心者プログラマです
以下リンクのチュートリアルを進めている過程で疑問が発生したので
質問させてください
質問内容
以下が実際のコードですが
model
を定義している場所では(28 x 28)の行列を入力として
出力を(10)のベクトルを出力するよう定義しているが
mode.fit()
, model.evaluate()
の関数では(28 x 28)の行列を入力として
出力を(1)のベクトルとなっています
でも実際にはmodel()
で推定を行うと(28 x 28)の行列を入力として
出力を(10)のベクトルとして出力してくれます
この違いはどこでどのような処理をしてくれているのでしょうか
python
1import tensorflow as tf 2import numpy as np 3 4if __name__ == '__main__': 5 mnist = tf.keras.datasets.mnist 6 7 (x_train, y_train), (x_test, y_test) = mnist.load_data() 8 x_train, x_test = x_train / 255.0, x_test / 255 9 10 # このモデルでは最後の出力結果は(N x 10)行列 11 model = tf.keras.models.Sequential([ 12 tf.keras.layers.Flatten(input_shape=(28, 28)), 13 tf.keras.layers.Dense(128, activation='relu'), 14 tf.keras.layers.Dropout(0.2), 15 tf.keras.layers.Dense(10) 16 ]) 17 18 loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) 19 20 model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy']) 21 model.fit(x_train, y_train, epochs=5) 22 23 # 入力(N x 28 x 28) ⇛ 出力(N) 24 model.evaluate(x_test, y_test, verbose=2) 25 26 print(y_test[:5]) 27 28 probability_model = tf.keras.Sequential([ 29 model, 30 tf.keras.layers.Softmax() 31 ]) 32 33 # 入力(N x 28 x 28) ⇛ 出力(N x 10) 34 ans = probability_model(x_test[:5]).numpy() 35 36 print(ans) 37
実際の出力
console
1# print(y_test[:5]) 2[7 2 1 0 4] 3 4# print(ans) 5[[1.6118878e-07 2.4484972e-08 5.1145807e-06 2.2368744e-04 2.4622858e-11 6 4.2596776e-07 5.8544987e-13 9.9976856e-01 3.4579617e-07 1.6388203e-06] 7 [2.2706962e-08 6.7041372e-05 9.9992490e-01 7.6350261e-06 2.0046315e-12 8 3.5378790e-07 1.5796034e-07 1.1476339e-11 5.6065048e-08 5.7253244e-11] 9 [3.3690245e-07 9.9946076e-01 1.1417094e-04 4.4337116e-06 5.6784207e-05 10 2.9750072e-06 2.7395367e-06 2.8639822e-04 7.1094953e-05 2.3676076e-07] 11 [9.9996448e-01 3.6563709e-08 8.4685371e-06 7.8264009e-09 4.5565784e-07 12 1.4461138e-08 3.2253117e-06 1.1364364e-05 8.1827267e-10 1.1975261e-05] 13 [1.1635639e-06 3.2568303e-07 3.1758764e-06 6.8589991e-09 9.9955612e-01 14 9.3095359e-08 3.5744374e-06 3.3490895e-05 1.2255333e-06 4.0069365e-04]]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/13 08:41
2021/02/13 08:52
2021/02/13 08:53