Tensorflow函数之tf.equal、tf.cast
1、tf.equal是对比两个向量或者矩阵的值是否相等。
对应元素相等返回true,不相等返回false。注意返回的数据类型。
import tensorflow as tf
import numpy as np
A = [[1,3,4,5,6]] #1*5矩阵
B = [[1,3,4,3,2]] #1*5矩阵
C = [1,3,4,5,6] #有5个元素的向量
D = [1,3,4,3,2] #有5个元素的向量
with tf.compat.v1.Session() as sess:
print(sess.run(tf.equal(A, B)))#矩阵与矩阵
print(sess.run(tf.equal(C, D)))#向量与向量
print(sess.run(tf.equal(C, B)))#向量与矩阵
print(sess.run(tf.equal(B, D)))#矩阵与向量
输出:
[[ True True True False False]] #矩阵
[ True True True False False] #向量
[[ True True True False False]] #矩阵
[[ True True True True True]] #矩阵
2、tf.cast用于转换数据类型。
表示:tf.cast(x, dtype, name=None)
如将tensor转换为bool,或者将bool转换为tensor,具体实例如下:
import tensorflow as tf
a = tf.Variable([1,0,0,1,0])
b = tf.cast(a,dtype = bool) #tensor转换为bool
c = tf.cast(b,dtype=tf.int32)#bool转换为tensor
init_op = tf.compat.v1.initialize_all_variables()
with tf.compat.v1.Session() as sess:
sess.run(init_op)#加入默认图中,变量初始化
print(sess.run([a,b,c]))#获取值
输出:
[array([1, 0, 0, 1, 0]),
array([ True, False, False, True, False]),
array([1, 0, 0, 1, 0])]