摘要:
之前我们学习过用CNN(卷积神经网络)来识别手写字,在CNN中是把图片看成了二维矩阵,然后在二维矩阵中堆叠高度值来进行识别。 而在RNN中增添了时间的维度,因为我们会发现有些图片或者语言或语音等会在时间轴上慢慢展开,有点类似我们大脑认识事物时会有相关的短期记忆。 这次我们使用RNN来识别手写数字。 阅读全文
摘要:
当我们对模型进行了训练后,就需要把模型保存起来,便于在预测时直接用已经训练好的模型进行预测。 保存模型的权重和偏置值 假设我们已经训练好了模型,其中有关于weights和biases的值,例如: 然后我们初始化这些变量的值,假装是训练后被设置上的值: 最后进行保存: 这样在打印出: 在那个目录下,我 阅读全文
摘要:
前面我们曾有篇文章中提到过关于用tensorflow训练手写28 28像素点的数字的识别,在那篇文章中我们把手写数字图像直接碾压成了一个784列的数据进行识别,但实际上,这个图像是28 28长宽结构的,我们这次使用CNN卷积神经网络来进行识别。 卷积神经网络我的理解是部分模仿了人眼的功能。 我们在看 阅读全文
摘要:
在机器学习中可能会存在过拟合的问题,表现为在训练集上表现很好,但在测试集中表现不如训练集中的那么好。 图中黑色曲线是正常模型,绿色曲线就是overfitting模型。尽管绿色曲线很精确的区分了所有的训练数据,但是并没有描述数据的整体特征,对新测试数据的适应性较差。 一般用于解决过拟合的方法有增加权重 阅读全文
摘要:
前面我们学习过回归问题,比如对于房价的预测,因为其预测值是个连续的值,因此属于回归问题。 但还有一类问题属于分类的问题,比如我们根据一张图片来辨别它是一只猫还是一只狗。某篇文章的内容是属于体育新闻还是经济新闻等,这个结果是有一个全集的离散值,这类问题就是分类问题。 我有时会把回归问题看成是分类问题, 阅读全文
摘要:
前面我们用Tensorboard显示了tensorflow的程序结构,本节主要用Tensorboard显示各个参数值的变化以及损失函数的值的变化。 这里的核心函数有: histogram 例如: 这里用tf.summary.histogram函数来显示二维数据在不同网络层的变化情况,其中第一个参数是 阅读全文
摘要:
tensorflow自带了可视化的工具:Tensorboard。有了这个可视化工具,可以让我们在调整各项参数时有了可视化的依据。 本次我们先用Tensorboard来可视化Tensorflow的结构。 在输出tensorflow结构的关键步骤是: 这个函数中把当前的tensorflow的结构图输出到 阅读全文
摘要:
tensorflow中的优化器主要是各种求解方程的方法,我们知道求解非线性方程有各种方法,比如二分法、牛顿法、割线法等,类似的,tensorflow中的优化器也只是在求解方程时的各种方法。 比较常用的是:·tf.train.GradientDescentOptimizer()·梯度下降优化器,之前我 阅读全文
摘要:
这次我们把上次的结果进行可视化显示,我们会把神经网络的优化过程以图像的方式展示出来,方便我们了解神经网络是如何进行优化的。 首先,我们把测试数据显示出来: 这里为了能够更加灵活地控制显示的图形,因此增加了subplot,这样方便对其中画出的线进行删除。 plt.ion()开启了交互模式,这样不会使图 阅读全文
摘要:
上次我们添加了一个add_layer函数,这次就要创建一个神经网络来预测/拟合相应的数据。 下面我们先来创建一下虚拟的数据,这个数据为二次曲线数据,但同时增加了一些噪点,其图像为: 相应的创建这些伪造数据的代码为: 有了虚拟的数据之后,我们假装不知道这个数据的规律,因此我们想要通过一个神经网络来根据 阅读全文