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型に変換します。

参考:

Tensorflow:cast

tf.reduce_mean

テンソルの次元間の要素の平均を計算します。

Tensorflow: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.]