1、Keras

在这里我们推荐使用keras进行深度学习编程,比起tensorflow来说更容易学习,操作简单,

李宏毅《深度学习》:深度学习入门实例

2、手写识别实例

这里手写识别的数据集来自于minst,一个非常常用的数据集,从keras里可以直接导入

李宏毅《深度学习》:深度学习入门实例

第一步,定义方程,根据我们的输入、输出和神经网络层数来进行定义

在这里我们定义了两层,所以需要model.add两次,并且第一层需要定义input,之后都不需要定义input,因为上一层的输出就可以作为下一层的输入;且直接使用sigmoid方法

通过代码可以看出我们只需要定义使用的方法以及输入输出的维度即可,使用非常简单

李宏毅《深度学习》:深度学习入门实例

第二步计算loss,即计算标记和方程输出之间的差距

李宏毅《深度学习》:深度学习入门实例

第三步选择最优方程

四个函数:training data、labels、batch_size和epoch

李宏毅《深度学习》:深度学习入门实例

将输入图片和标记转换成numpy array格式

李宏毅《深度学习》:深度学习入门实例

batch:将输入随机分成多个mini-batch中,记住一定要随机,然后每次epoch计算全部的mini-batch并更新全部参数,

即一次epoch计算全部mini-batch,更新mini-batch个数的参数

李宏毅《深度学习》:深度学习入门实例

所以这里的epoch指的是更新全部batch的次数,

李宏毅《深度学习》:深度学习入门实例

不同的batch size运行速度不同,并不是说一定的examples时间一定,所以设置batch是有必要的,即我们使用了GPU平行运算,

李宏毅《深度学习》:深度学习入门实例

x1和x2理论上运行量一样多,但是使用batch将x1和x2一起计算时可以GPU平行计算,使得上面的运算是下面的运算的两倍


李宏毅《深度学习》:深度学习入门实例

李宏毅《深度学习》:深度学习入门实例

相关文章: