原理
Tensorflow将计算过程分为两步,首先是创建计算图,然后数据(张量Tensor:n维数组)从计算图中流通最终的得到计算图也即神经网络的计算结果。
#调用方法
import tensorflow as tf
重要函数
tf.cast()保证计算图中数据类型一致性
确保传入计算图的数据的数据类型在整个计算图中匹配是很重要的,如果在执行计算过程中出现两个不匹配的数据类型的数据执行操作将会导致异常,使用tf.cast()可更改张量的数据类型设置,其第一个参数是张量,第二个参数是需要更新的数据类型
x=tf.constant([1,2,3],name='x',dtype=tf.float32)
print(x.dtype)
x=tf.cast(x,tf.int64)
print(x.dtype)
tf.matmul(A,B)矩阵A和B相乘
在矩阵相乘时,首先要保证两个代相乘的矩阵维度匹配,即第一个矩阵的行的维度等于第二个矩阵的列的维度
tf.expand_dims()
将单维向量转化为二维矩阵,tf.expand_dims()第一个参数是要转化的向量,第二个参数是要加的维度。
A=tf.constant([[1,2,3],[4,5,6]])
x=tf.constant([1,0,1])
print(x.get_shape())#get_shape()获取矩阵的维度
x=tf.expand_dims(x,1)
print(x.get_shape())
b=tf.matmul(A,x)
sess=tf.InteractiveSession()
print(b.eval())#这里的eval()可以返回b张量的值
tf.transpose()转置
A=tf.constant([[1,2,3],[4,5,6]])
print(A.eval())
print(tf.transpose(A).eval())
命名空间
每个张量对象有一个识别名称,与dtype一样,可以使用.name属性来查看对象的名称,在同一个图中的对象不可以有相同的名称,所以他会自动加入一个下划线和数字来区分两个对象
with tf.Graph().as_default():
c1=tf.constant(4,dtype=tf.float64,name='c')
c2=tf.constant(4,dtype=tf.int32,name='c')
print(c1.name)
print(c2.name)