TensorFlow之张量声明
TensorFlow的主要数据结构是张量,它用张量来操作计算图。在TensorFlow里可以把变量或者占位符声明为张量。首先,需要知道如何创建张量。
1.开始
创建一个张量,声明其为一个变量。TensorFlow在计算图中可以创建多个图结构。在这里需要指出,在TensorFlow中创建一个张量,并不会立即在计算图中增加什么只有把张量赋值给一个变量或占位符,TensorFlow才会把此张量增加到计算图中。
2.创建张量的主要方法
(1)固定张量:
1)创建指定维度的零张量:
zero_tsr = tf.zeros([row_dim,col_dim])
2)创建指定维度的单位张量:
ones_tsr = tf.ones([row_dim,col_dim])
3)创建指定维度的常数填充张量:
filled_tsr = tf.fill([row_dim,col_dim],42)
4)用已知常数张量创建一个张量:
constant_tsr = tf.constant([1,2,3])
(2)相似形状的张量:
新建一个与给定的tensor类型大小一致的tensor,其所有元素为0或者1,使用方式如下:
zeros_simiar = tf.zeros_like(constant_tsr)
ones_simiar = tf.ones_like(constant_tsr)
(3)序列张量
1)TensorFlow可以创建指定间隔的张量。下面的函数的输出与range()函数和numpy()函数的linspace()函数的输出相似:
linear_tsr = tf.linspace(start=0,stop=1,start=3)
返回的张量是[0.0,0.5,1.0]序列。注意,上面的函数结果中最后一个值是stop值,另外一个rang()函数使用方式如下:
integer_seq_tsr = tf.range(star=6,limit=15,delta=3)
返回的张量是[6,9,12]。注意,这个函数结果不包括limit值。
integer_seq_tsr = tf.range(star=6,limit=15,delta=3)
(4)随机张量
1)tf.random_uniform()函数生成均匀分布的随机函数:
randunif_tsr = tf.random_uniform([row.dim,col.dim],minval=0,maxval=1)
注意,这个随机均匀分布从minval(包含minval值)开始到maxval(不包含maxval值)结束,即(minval<=x<maxval)。
2)tf.random_normal()函数生成正态分布的随机数:
random_tsr = tf.random_normal([row_dim,col_dom],mean=0.0,stddev=1.0
3)tf.truncated_normal()函数生成带有指定边界的正太分布的随机数,其正太分布的随机数位于指定均值(期望)到两个标准差之间的区间:
runcnorm_tsr = tf.truncated_normal([row_dim,col_dim],mean=0.0,stddev=1.0)
4)张量数组的随机化:
shuffled_output = tf.random_shuffle(input_tensor)
cropped_output = tf.random_crop(input_tensor,crop_size)
5)张量的随机剪裁:
cropped_image = tf.random_crop(my_image,[height/2,width/2,3])