keras入门笔记
TensorFlow源码库:
https://github.com/tensorflow/tensorflow
本文参考了博客https://blog.csdn.net/qq_42483967/article/details/80759828,有不足之处希望大家指出。
Tensorflow和Keras的关系:
TensorFlow和Keras都是深度学习框架,TensorFlow比较灵活。Keras其实就是TensorFlow的接口(Keras作为前端,TensorFlow作为后端),它也很灵活,且比较容易学。可以把keras看作为tensorflow封装后的一个API。
Tensorflow可以用5-4-9模型来概括:5 步 + 4 种基本元素 + 9 种基本层结构
5步法
(1)网络模型
过程化方法构造网络模型,Keras中提供了Sequential容器来实现过程式构造。只要用Sequential的add方法把层结构加进来就可以了。
(2)编译模型
模型构造好之后,下一步就可以调用Sequential的compile方法来编译它,编译时需要指定两个基本元素:loss是损失函数,optimizer是优化函数。
(3)训练模型
调用fit函数,将输出的值X,打好标签的值y,epochs训练轮数,batch_size批次大小设置一下。
(4)评估模型
要用测试数据来评估,loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
(5)使用模型进行预测
classes = model.predict(x_test, batch_size=128)
4种基本元素
(1)网络结构:由10种基本层结构和其他层结构组成 ,用层结构来拼装(如何设计层结构)。
(2)激活函数:如relu, softmax。对于多分类的情况,最后一层是softmax。 其它深度学习层中多用relu。 二分类可以用sigmoid。 另外浅层神经网络也可以用tanh。
(3)损失函数:
categorical_crossentropy多分类对数损失
binary_crossentropy对数损失
mean_squared_error平均方差损失
mean_absolute_error平均绝对值损失
对于多分类来说,主要用categorical_ crossentropy。
(4)优化器:如SGD随机梯度下降, RMSProp, Adagrad, Adam, Adadelta等
9种基本层模型
3种主模型:
全连接层:Dense
卷积层:如conv1d, conv2d
循环层:如lstm, gru
3种辅助层:
Activation层
Dropout层
池化层
3种异构网络互联层:
嵌入层:用于第一层,输入数据到其他网络的转换
Flatten层:用于卷积层到全连接层之间的过渡
Permute层:用于RNN与CNN之间的接口
下面使用Mnist手写识别作为一个例子来讲解:
请见下一文章Keras入门笔记(2)