tf.nn.in_top_k
tf.nn.in_top_k(predictions, targets, k, name=None)
'''
predictions: 你的预测结果(一般也就是你的网络输出值)大小是预测样本的数量乘以输出的维度`
target: 实际样本类别的标签,大小是样本数量的个数`
k: 每个样本中前K个最大的数里面(序号)是否包含对应target中的值`
'''
import tensorflow as tf
A = tf.Variable([[0.8, 0.4, 0.5, 0.6],[0.1, 0.9, 0.2, 0.4],[0.1, 0.9, 0.4, 0.2]])
B = tf.Variable([1, 1, 2])
result = tf.nn.in_top_k(A, B, 2)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(A))
print(sess.run(B))
print(sess.run(result))
# k=1 [False True False]
# k=2 [False True True]
'''
解释:
k取1的时候:
A中第一行元素的最大一个值为0.8,索引(序号)是0,而B是1,不包含B,所以返回False.
A中第二行元素的最大一个值为0.9,索引(序号)是1,而B是1,包含B,所以返回True.
A中第三行元素的最大一个值为0.9,索引(序号)是1,而B是2,不包含B,所以返回False.
k取2的时候:
A中第一行元素的最大两个值为0.8,0.6,索引(序号)是0,3,而B是1,不包含B,所以返回False.
A中第二行元素的最大两个值为0.9,0.4,索引(序号)是1,3,而B是1,包含B,所以返回True.
A中第三行元素的最大两个值为0.9,0.4,索引(序号)是1,2,而B是2,包含B,所以返回True.
'''
tf.reduce_mean()
reduce_mean(input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
tf.reduce_mean
函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
第一个参数input_tensor
: 输入的待降维的tensor; 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值; 第三个参数keep_dims
:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度; 第四个参数name: 操作的名称; 第五个参数reduction_indices
:在以前版本中用来指定轴,已弃用;
类似函数
-
tf.reduce_sum
: 计算tensor指定轴方向上的所有元素的累加和; -
tf.reduce_max
: 计算tensor指定轴方向上的各个元素的最大值; -
tf.reduce_all
: 计算tensor指定轴方向上的各个元素的逻辑和(and运算); -
tf.reduce_any
: 计算tensor指定轴方向上的各个元素的逻辑或(or运算);
网友评论