TensorFlow まとめ 続き
前回の続きです。
tf.argmax
数学的なArgmaxは「その中で最大の値をとる集合」です。例えば、[1,3,2,1,3] という数列があった場合、[2番目の3,5番目の3]がArgmaxになります。tfのargmaxは少し違っていて、「最大の数字を取る値のインデックス番号」を返します。この例でいうと、2番目なので、1を返します。(インデックスなので0から始まります)
import tensorflow as tf sess = tf.Session()
単純な数列の場合
x = tf.constant([1,2,3,2,3]) # 最大値を持つ値(ここでは3)の最初のインデックスを返すので、最初の3のインデックスである2を返す xd = sess.run(tf.argmax(x)) print(xd)
2
行列の場合は、評価する方向を指定できます。
x = tf.constant([[1,2,3],[2,1,4]]) xd = sess.run(tf.argmax(x,axis=0)) # 行で評価する print(xd) xd = sess.run(tf.argmax(x,axis=1)) # 列で評価する print(xd)
[1 0 1]
[2 2]
tf.cast
型変換をします。tf.cast(x, "float") は xをfloat型に変換します。
参考:
tf.reduce_mean
テンソルの次元間の要素の平均を計算します。
x = tf.constant([[1., 1.], [2., 2.]]) tf.reduce_mean(x) # 1.5 tf.reduce_mean(x, 0) # [1.5, 1.5] tf.reduce_mean(x, 1) # [1., 2.]