还是关于TensorFlow的基础知识,这次学习TensorFlow中数据的类型。
一共包括四种:
- 标量:好像没啥说的
- 向量:n*1的矩阵,一维
- 矩阵:n*n的矩阵,二维
- 张量:n的n次方,n维。其中包括三种类型:常量,变量(每次加载图的时候会占用内存),占位符(现在没用过,也没太看懂用来干哈,先粘个定义:用于将值输入 TensorFlow 图中。它们可以和 feed_dict 一起使用来输入数据。在训练神经网络时,它们通常用于提供新的训练样本。在会话中运行计算图时,可以为占位符赋值。这样在构建一个计算图时不需要真正地输入数据。需要注意的是,占位符不包含任何数据,因此不需要初始化它们。)
下面举一些栗子来形象的学习一下这些数据类型:
- 声明一个常量标量:
v_1 = tf.constant(6)
- 声明一个常量向量:
v_2 = tf.constant([1,2,3,4])
- 想要创建一个所有元素都为0的张量,使用以下函数:
v_3 = tf.zeros([2,3],tf.int32)
语句的结果是创造出一个2*3的名为v_3的矩阵且数据类型是int32。
- 还可以使用like创造出与现有Numpy数组或张量常量具有相同形状的常量张量:
v_4 = tf.zeros_like(v_3)
#创造一个与v_3矩阵很像的,元素全是0的v_4矩阵
v_5 = tf.ones_like(v_3)
#创造一个与v_3矩阵很像的,元素全是1的v_5矩阵
- 创造一个m*n的,元素均为1的矩阵:
v_6 = tf.ones([m,n],tf.int32)
#与上述的创造所有元素全为0的张量十分类似
- 在一定数值的范围内生成一个从初值到终值等差排布的一个序列,其中的间隔值为(stop-start)/(num-1),代码如下:
tf.linespace(start,stop,num)
tf.linespace(2.0,5.0,5)
#生成的结果为[2.0 2.75 3.5 4.25 5.0]
- 从开始(默认值=0)生成一个数字序列,增量为 delta(默认值=1),直到终值(但不包括终值):
tf.range(start,limit,delta)
举个栗子:
v_7 = tf.range(10)
#生成的结果为[0 1 2 3 4 5 6 7 8 9]
基础知识就写到这儿了……我还是手撸代码去吧