- 我们已经准备了一个脚本来自动下载和导入MNIST数据集。它会自动创建一个’MNIST_data’的目录来存储数据
在这里插入代码片
-
mnist是一个什么级的类。它以什么的形式存储着训练、校验和测试数据集。同时提供了一个函数,用于在迭代中获得什么,后面我们将会用到。
-
Tensorflow依赖于一个什么来进行计算。与后端的这个连接叫做什么?
-
使用TensorFlow程序的流程是先创建什么,然后在哪里中启动它。
-
这里,我们使用更加方便的什么类。通过它,你可以更加灵活地构建你的代码。
-
它能让你在运行图的时候,插入一些什么,这些什么是由某些什么构成的。
在这里插入代码片
-
为了在Python中进行高效的数值计算,我们通常会使用什么库
-
TensorFlow是哪里完成其主要工作,
-
先让我们描述一个什么,然后完全将其运行在Python外部。
-
Python代码的目的是用来构建什么?以及安排什么?
-
我们通过为输入图像和目标输出类别创建节点,来开始构建计算图。
在这里插入代码片
-
这里的x和y并不是什么,相反,他们都只是一个什么?
-
可以在TensorFlow运行某一计算时根据该什么输入什么?
-
输入图片x是一个几维的什么?
-
分配给它的shape是什么?
-
其中什么是一张展平的MNIST图片的维度?
-
None表示其值怎样,在这里作为第一个维度值,用以指代什么的大小,意即x的怎样。
-
输出类别值y_也是一个几维张量,其中每一行为一个几维的什么向量,用于代表对应某一MNIST图片的类别
-
虽然placeholder的shape参数是可选的,但有了它,TensorFlow能够干什么?
-
我们现在为模型定义权重什么和偏置什么
-
可以将它们当作额外的输入量,但是TensorFlow有一个更好的处理方式:什么
-
一个变量代表什么,能够在计算过程中使用,甚至进行修改。
-
在机器学习的应用过程中,模型参数一般用什么来表示。
在这里插入代码片
-
我们在调用什么的时候传入初始值
-
在这个例子里,我们把W和b都初始化为什么?
-
W是一个几x几的矩阵(因为我们有几个特征和几个输出值
-
b是一个几维的向量(因为我们有几个分类
-
变量需要通过什么后,才能在session中使用。
-
这一初始化步骤为,为初始值指定什么(本例当中是几),并将其分配给谁, 是否可以一次性为所有变量完成此操作?
在这里插入代码片
- 现在我们可以实现我们的回归模型了。我们把什么和什么相乘,加上什么,然后计算每个分类的什么。
在这里插入代码片
-
我们的损失函数是什么?
-
什么把什么里的每张图片的交叉熵值都加起来了。我们计算的交叉熵是指哪里的。
-
因为TensorFlow知道整个计算图,它可以使用什么法找到对于各个变量的损失的梯度值。
-
我们用最速下降法让交叉熵下降,步长为0.01.
在这里插入代码片
-
上边这一行代码实际上是用来往计算图上添加一个新操作,其中包括什么?
-
返回的train_step操作对象,在运行时会使用什么来更新参数
-
因此,整个模型的训练可以通过反复地运行什么来完成
-
每一步迭代,我们都会加载几个训练样本。
for i in range(1000):
batch = mnist.train.next_batch(50)
train_step.run(feed_dict={x: batch[
- 执行一次什么,并通过什么将x 和 y_张量占位符用训练训练数据替代。
- 在计算图中,你可以用什么来替代任何张量,并不仅限于替换占位符
- tf.argmax 是一个非常有用的函数,它能给出什么?
- 由于标签向量是由什么组成,因此最大值什么所在的索引位置就是类别标签,
- 什么返回的是模型对于任一输入x预测到的标签值
- 什么代表正确的标签
- 我们可以用 什么来检测我们的预测是否真实标签匹配(索引位置一样表示匹配)。
- 为了计算我们分类的准确率,我们将什么值转换为什么数来代表对、错,然后取什么值
在这里插入代码片
- 为了创建这个模型,我们需要创建大量的什么?
- 这个模型中的权重在初始化时应该加入少量的什么?
- 由于我们使用的是什么神经元,因此比较好的做法是用一个较小什么数来初始化偏置项,以避免什么?
- 我们定义两个函数用于初始化。
在这里插入代码片
- 我们的卷积使用几步长(stride size),几边距(padding size)的模板,保证输出和输入是同一个大小。
- 我们的池化用简单传统的多少大小的模板做max pooling
在这里插入代码片
- 现在我们可以开始实现第一层了。它由一个卷积接一个什么完成
- 卷积在每个几x几的patch中算出几个特征。
- 卷积的权重张量形状是[什么]
- 前两个维度是什么,接着是什么,最后是什么。
- 对于每一个输出通道都有一个对应的什么?
- 为了用这一层,我们把x变成一个几维向量,其第2、第3维对应图片的什么、什么,最后一维代表图片的什么(因为是灰度图所以这里的通道数为几,如果是rgb彩色图,则为几)。
- 我们把什么和什么进行卷积,加上什么,然后应用什么函数,最后进行什么。
- 为了构建一个更深的网络,我们会把几个类似的层堆叠起来。第二层中,每个5x5的patch会得到64个特征。
在这里插入代码片
- 现在,图片尺寸减小到7x7,我们加入一个有1024个神经元的全连接层,用于处理整个图片。我们把池化层输出的张量reshape成一些向量,乘上权重矩阵,加上偏置,然后对其使用ReLU。
在这里插入代码片
- 为了减少过拟合,我们在输出层之前加入什么?
- 我们用一个什么来代表一个神经元的输出在dropout中保持不变的概率。
- 这样我们可以在训练过程中怎样dropout,在测试过程中怎样dropout
- TensorFlow的tf.nn.dropout操作除了可以屏蔽什么,还会自动处理什么?
- 用dropout的时候是否可以不用考虑scale?
在这里插入代码片
- 最后,我们添加一个softmax层,就像前面的单层softmax regression一样
在这里插入代码片
- 为了进行训练和评估,我们使用与之前简单的单层什么模型几乎相同的一套代码
- 只是我们会用更加复杂的什么优化器来做梯度最速下降
- 在什么中加入额外的什么参数来控制dropout比例
在这里插入代码片