keras
一.搭建神经网络步骤
1.
Model=sequential() sequential()顺序模型,它可以由多个网络层线性堆叠。
2.
接下来用.add() 来添加网络层
model.add(LSTM......)
model.add(conv2d...) //卷积层
model.add(MaxPool2D..) //池化层
Model.add(Dense...) //全连接层
3.
.compile() 配置学习过程
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics='accuracy')
我们也可以配置优化器的参数。所以keras让用户简单的搭建模型的同时,又可以控制它。
- 训练
model.fit(xtrain,ytrain,epochs=300,batch_size=32,verbose=2,validation_data=(xtest, ytest),callbacks=[history])
epochs训练次数,batch_size 依次送入网络训练的个数
- 测试
Model.evaluate(xtest,ytest)
对训练好的模型进行测试
- keras中的模块
- losses损失函数
categorical_crossentropy交叉熵函数
使用时需要注意目标值(标签)除了表示类别的值是1,其他的均为0.
除此之外还有logcosh(双曲余弦对数),hinge(铰链损失)等等
- Metrics 评估函数
metrics='accuracy'
准确值来评估性能
- optimizers 优化器
Adam
参数:
Ir: 学习率 float>=0;
Beta1,beta2 俩个平滑常数,用来计算梯度平滑,通常取默认值0.9,0.999
Decay 学习率衰减值
除了adam还有sgd(随机梯度下降优化器),RMSprop(RNN通常会用这个)
- 激活函数 activations
softmax
Relu,sigmoid
- 回调函数 callbacks
Callbacks=[history]
把所有数据都记录到hiostory对象中。
6.自带的数据集 datasets
Cifar10 小图像分类
Mnist 手写数字分类
等
from keras.datasets import cifar10
(x_train, y_train), (x_test, y_test)=cifar10.load_data()
7初始化 initializer
bias_initializer='zeros' 张量初始值为0
RandomNormal 正态分布生成随机张量
RandomUniform 均匀分布生成随机张量
- 正则化 regularizers
对网络层的参数惩罚,缓解过拟合的现象
model.add(Dense(64,input_dim=64,kernel_regularizer=regularizers.L2(0.01)