本篇内容包括,tf.norm(张量的范数)、tf.reduce_min/max(最大最小值)、tf.argmax/argmin(最大最小值的位置)、tf.equal(张量的比较)、tf.unique(张量的独特值)
1.tf.norm
· 二范数 ||x||2 = (Σxk2)1/2
· 一范数 ||x||1 = Σ|xk|
· 无穷范数 ||x||∞ = max|xk|
# 二范数 a = tf.ones([2,2]) print(tf.norm(a)) print(tf.norm(a,ord=2,axis=0)) print(tf.sqrt(tf.reduce_sum(tf.square(a)))) # 一范数 print(tf.norm(a,ord=1)) print(tf.norm(a,ord=1,axis=0)) print(tf.norm(a,ord=1,axis=1))
2.reduce_min/max/mean
a = tf.random.normal([4,10]) # 全值,即把tensor打平为[40] print(tf.reduce_min(a),tf.reduce_max(a),tf.reduce_mean(a)) # 指定参数轴 print(tf.reduce_min(a,axis=1),tf.reduce_max(a,axis=1),tf.reduce_mean(a,axis=1))
3.argmax/argmin
print(tf.argmax(a).shape) print(tf.argmax(a)) print(tf.argmin(a).shape) print(tf.argmin(a))
4.tf.equal
accuracy求值应用
# 假定网络输出a a = tf.constant([[0.1,0.7,0.9],[0.9,0.05,0.05]]) # 预测输出索引 pred = tf.cast(tf.argmax(a,axis=1),dtype=tf.int32) # 实际标签 y = tf.constant([2,1]) print(tf.equal(y,pred)) accuracy = tf.reduce_sum(tf.cast(tf.equal(y,pred),dtype=tf.int32))/2 print(accuracy)
5.tf.unique
# tf.unique用来去除重复元素 a = tf.range(5) print(tf.unique(a)) a = tf.constant([4,2,2,4,3]) print(tf.unique(a))