Keras建立及使用模型步骤

56 篇文章 4 订阅
37 篇文章 1 订阅

简介

Keras 是与 TensorFlow 一起使用的更高级别的作为后端的API。

添加层、编译、拟合模型、预测等分别只需添加一行代码,其变量声明、占位符、会话都由API管理。




1. 定义模型

from keras.models import Sequential
from keras.layers import Dense

model = Sequential()




2. 添加层

keras.layers.core.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

参数含义
units大于0的整数,该层的输出维度
activation激活函数
use_bias是否使用偏置项
kernel_initializer权值初始化方法
bias_initializer偏置向量初始化方法
kernel_regularizer权重上的正则项
bias_regularizer偏置向量上的正则项
activity_regularizer输出上的正则项
kernel_constraints权重上的约束项
bias_constraints偏置上的约束项

每个隐藏层由前一层提供输入,只需为第一层指定输入维度

model.add(Dense(32, input_dim=13, activation='relu'))
model.add(10, activation='sigmoid')




3. 选择优化器和损失函数

Model.compile(optimizer, loss, metrics=[], loss_weights=None, sample_weight_mode=None)

参数含义
optimizer优化器:SGD、RMSprop、Adagrad、Adadelta、Adam、Adamax、Nadam
loss目标函数:mean_squared_error或mse、mean_absolute_error或mae、mean_absolute_percentage_error或mape、mean_squared_logarithmic_error或msle、squared_hinge、hinge、binary_crossentropy、categorical_crossentropy、sparse_categorical_crossentrop、kullback_leibler_divergence、poisson、cosine_proximity
metrics列表,评估模型在训练和测试时的性能的指标,典型用法是metrics=[‘accuracy’]
sample_weight_mode如果需按时间步为样本赋权,设为“temporal”
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])




4. 训练模型

Model.fit(x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None)

参数含义
x输入数据。1个输入用numpy array,多个输入用list
y标签
batch_size每批训练批量大小
nb_epoch迭代次数
verbose日志显示。0无,1进度条,2每个迭代
callbacks回调函数,list
validation_split验证集比例,0-1
validation_data指定验证集,tuple(此参数覆盖validation_spilt)
shuffle是否随机打乱输入样本的顺序
class_weightdict,将不同的类别映射为不同的权值,用于训练中调整损失函数
sample_weight权值的numpy array,用于训练中调整损失函数。可以传递一个1D的与样本等长的向量用于对样本进行1对1的加权,或者在面对时序数据时,传递一个的形式为(samples,sequence_length)的矩阵来为每个时间步上的样本赋不同的权。这种情况下请确定在编译模型时添加了sample_weight_mode=‘temporal’。
model.fit(data, labels, epochs=10, batch_size=32)




5. 训练模型

Model.predict(self, x, batch_size=32, verbose=0)

返回预测值的numpy array

model.predict(test_data, batch_size=10)




6. 保存模型

Model.save(self, filepath, overwrite=True, include_optimizer=True)

返回一个HDF5文件。包含:模型的结构(以便重构该模型)、模型的权重、训练配置(损失函数,优化器等)、优化器的状态(以便于从上次训练中断的地方开始)

model.save('my_model.h5')




7. 加载模型

keras.models.load_model(filepath, custom_objects=None, compile=True)

from keras.models import load_model
model = load_model('my_model.h5')




参考文献

  1. MNIST & Keras保存模型并预测
  2. Keras:基于Python的深度学习库 - Keras中文文档
  3. Keras 中文文档
  4. Keras 英文文档
  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值