首触Keras

因为手上的一项任务需要使用当神经网络中的CNN模型,并对CNN根据任务进行一定的"改造"。故开始学习深度学习相关知识。

1.环境的搭建

由于LZ使用的式Ubuntu系统,所以在配置好python环境之后只需要配置相关的深度学习框架(尽量保证python的版本是3,因为tensorflow和python3的适配更好);python环境配置相关方法可自行百度,非常简单。因为现目前常用的深度学习包以keras最火最为流行,故非常兴奋的就选择了从keras“人坑”。Keras是一种较高层次的深度学习框架,后端可以使用tensorflow或者theano。这里主要记录了LZ在Ubuntu上安装Keras+tensorflow的经历。

依次安装后端tensorflow,然后安装Keras框架。

  1. Ubuntu上直接 pip install tensorflow、pip install keras搞定。(LZ不是打广告,不过在linux操作系统上配置各种环境真的很方便)
  2. 测试。打开命令窗口进行import测试
  3. 注:注意自己tensorflow的版本,低级CPU是不适配高版本的tf的。

2.Keras相关

  1. Squential模型(序贯模型),单一的输入输出,层与层之间只有邻接关系没有任何连接。编译速度快操作简单。
  2. Graph(图模型),正好的Squential模型相反。多输入输出,层与层之间任意连接,编译速度快。

3.一些重要参数

        1.batch

        深度学习的优化算法主要就是梯度下降,batch就是不同的梯度下降策略;
        第一种,传统的梯度下降算法,遍历所有数据集计算依次损失函数,然后计算所有参数的梯度进行参数更新,然后再计算损失更新梯度。这样的方式更新一次梯度就需要计算所有数据,计算开销大不支持在线学习。这样传统的梯度下降称为Batch Gradient Descent,批梯度下降;
        第二种,每次看到一个数据集就计算一次损失函数,然后求梯度进行更新,这个称为随机梯度下降。这个方法速度快,但是可能出现结果不收敛的情况。
        第三种,为了解决前面两种方式的缺点,利用一种折中的方式,mini-batch gradient descent,小批梯度下降,这种方式主要是将数据分为若干批,每次计算一批数据对应损失函数的梯度,这样减少流随机性保证了收敛,同时也降低了计算资源消耗。
        注:现在基本上的梯度下降多是指mini-batch,keras中出现的batch-size就是指的这个。
        2.epochs
        简单来理解,这个参数就是指训练过程中要将训练数据‘轮’多少次;

猜你喜欢

转载自blog.csdn.net/Daistory/article/details/80977584