tf张量
张量在深度学习中非常重要,它是tf的核心组件之一,可以将其简单理解为多维数组。在tf中,0阶张量表示标量scalar,一个标量便是一个单独的数,是计算的最小单元,第一阶张量为向量,向量是由多个标量构成的一维数组,其中的标量是有序排列的;第n阶张量可以理解为一个n维数组。但张量中实际并没有真正的保存数字,只是保存了如何得到这些数字的计算过程,在tf中的实现并不是直接采用数组的形式,它只是对tf中运算结果的引用。
以下的例子创建了不同的张量,创建具体张量的方法没有仔细说明,用到的画百度即可,比较简单
import tensorflow as tf
sess = tf.Session()
x = tf.constant([3.0,2.0],name="x")
y = tf.constant([4.0,5.0],name="y")
result = tf.add(x,y,name="add")
print(sess.run(result))
zero_tensor = tf.zeros([2,3])
print(sess.run(zero_tensor))
print(zero_tensor)
filled_tensor = tf.fill([2,2],3)
print(sess.run(filled_tensor))
constant_tensor = tf.constant([1,2,3])
print(sess.run(constant_tensor))
zeros_similar = tf.zeros_like(constant_tensor)
one_similar = tf.ones_like(constant_tensor)
print(sess.run(zeros_similar),sess.run(one_similar))
linear_tensor = tf.linspace(start=0.0,stop=1.0,num=3)
sequence_tensor = tf.range(start=0,limit=10,delta=3)
print(sess.run(linear_tensor),sess.run(sequence_tensor))
randuniform_tensor = tf.random_uniform([2,2],minval=0.0,maxval=1.0)#均匀分布
print("均匀分布")
print(sess.run(randuniform_tensor))
randnormal_tensor = tf.random_normal([2,2],mean=1.0,stddev=1.0)
print("正态分布")
print(sess.run(randnormal_tensor))
truncnormal_tensor = tf.truncated_normal([2,2],mean=0.0,stddev=1.0)
print("指定区间正态分布")
print(sess.run(truncnormal_tensor))
shuffle_output = tf.random_shuffle([[1,2],[3,4],[5,6]])
print("随机打乱")
print(sess.run(shuffle_output))
cropped_output = tf.random_crop([[1,2],[3,4],[5,6],[7,8]],[2,2])
print("随机裁剪")
print(sess.run(cropped_output))
输出:
在tf中,张量主要有两种用途
1.对中间结果的引用。
2.在计算图构造完成后,通过张量来获取其中的计算结果。