TensorFlow 入门(三)

运算符

运算符

就是数据之间的运算。和加减乘除一样的道理

tf.add(x, y, name=None)        # 加法
tf.subtract(x, y, name=None)   # 减法
tf.multiply(x, y, name=None)   # 乘法
tf.divide(x, y, name=None)     # 浮点除法, 返回的是浮点数
tf.mod(x, y, name=None)  	   # 取余
tf.pow(x, y, name=None)        # 幂次方
tf.square(x, name=None)        # 平方
tf.sqrt(x, name=None)          # 开根号,必须传入浮点数或复数
tf.exp(x, name=None)           # 计算 e 的次方
tf.log(x, name=None)           # 以 e 为底,必须传入浮点数或复数
tf.reciprocal(x, name=None)    # 取倒数
tf.maximum(x, y, name=None)    # 返回两tensor中的最大值 
tf.minimum(x, y, name=None)    # 返回两tensor中的最小值 

上面的是比较常见的简单运算。
还有很多很多比较中要的是矩阵运算。因为在处理数据的时候大多数都是多维数组。。。重点讲解

矩阵乘法

tf.matmul(a, b, transpose_a=False, transpose_b=False,    

			adjoint_a=False, adjoint_b=False, 

			a_is_sparse=False, b_is_sparse=False, name=None)

a, b 是传入的两个矩阵,

transpose_a:如果 True,a 在乘法之前转置。
transpose_b:如果 True,b 在乘法之前转置。
adjoint_a:如果 True,a 在乘法之前共轭和转置。
adjoint_b:如果 True,b 在乘法之前共轭和转置。
a_is_sparse:如果 True,a 被视为稀疏矩阵。
b_is_sparse:如果 True,b 被视为稀疏矩阵。

例子

import tensorflow as tf

list_1 = [[1,2],[3,4]]

list_2 = [[1],[2]]

matmul = tf.matmul(list_1,list_2)

with tf.Session() as sess:

	print(sess.run(matmul))

结果就是

[[ 5]
[11]]

转置

专置就是把行变成列,列变成行

tf.transpose(a, perm=None,conjugate=False name=None)

a:需要转置的矩阵
perm: a 的维数的排列

conjugate: 嗯嗯,如果传入的是复数,就相当于转换成共轨复数,和tf.tf.conj()差不多。

例子

import tensorflow as tf

list_1 = tf.constant([[1-1j,2-2j],

		  			  [3+3j,4+4j],

		  			  [5+5j,6-6j]])

transpose = tf.transpose(list_1, perm=None,conjugate=bool)

with tf.Session() as sess:

	print(sess.run(transpose))

打印结果
[[1.+1.j 3.-3.j 5.-5.j]
[2.+2.j 4.-4.j 6.+6.j]]
conjugate=False 改成了conjugate=bool
如果不改就是
打印结果
[[1.-1.j 3.+3.j 5.+5.j]
[2.-2.j 4.+4.j 6.-6.j]]

其他的很多看官方文档或者用numpy转换也可以。。。

猜你喜欢

转载自blog.csdn.net/weixin_43039354/article/details/86384271
今日推荐