加载数据集。
这里的keep_prob是dropout的一个参数。dropout是一种随机置零的策略,用来防止模型过拟合。
这里定义两层,上面是卷积层,下面是池化层。
搭建了一层卷积、一层池化、一层卷积、一层池化。之后将输出展平,输入到全连接层里,进行输出,激活函数选用了relu函数。
这是上面神经网络用到的参数。
之后我们构建模型,pred是整个网络的输出。
cost设置为交叉熵
\[l(\varphi)=ylog(1-\varphi)+(1-y)log(1-\varphi)\]
优化器设置为AdamOptimizer,这也是一种新的优化,不展开了。
之后我们做一个评估标准,用correct_pred表示。tf.argmax()返回每一列的最大值,这里只返回第一列的最大值(即预测结果)与标签进行匹配,之后计算一个精确度。
最后初始变量。
最后一段:使用了while循环,进行了训练。最核心的函数还是之前的sess.run(),我们都知道feed_dict的作用是给使用placeholder创建出来的tensor赋值。其实,他的作用更加广泛:feed 使用一个 值临时替换一个 op 的输出结果。你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失.