tensorflow中张量,变量,常量进行数值运算都可用符号“+ - * /”,为方便起见,tensorflow中提供了方法。
如:
加法
add = tf.add(a, b)
减法
sub = tf.subtract(a, b)
乘法
mul = tf.multiply(a, b)
除法
div = tf.divide(a, b)
包括矩阵、向量的运算
以上是严格按照数学的计算形式,进行计算。
在tensorflow中定义的一维向量(如tf.get_variable(“b”,shape=[3],initializer=tf.constant_initializer(0.1)),结果为:[0.1 0.1 0.1])是行向量形状shape(n,),这里的n代表了行向量中有n个数据,并不是说有n行。
同样是行向量,在数学概念中是一维的,但是在tensorflow中形状shape(1,n),代表二维数据。
如在tensorflow中应该这样定义tf.get_variable(“b”,shape=[1,3],initializer=tf.constant_initializer([0.1,0.1,0.1])),结果为:[[0.1 0.1 0.1]],形状shape(1,3)
以上两种定义形式的不同,导致在数学运算中的截然不同,同样也会导致在tensorflow运行时出错,原本输入参数是要一维的,但是我们定义了一个二维的行向量,导致程序出错。