keras学习(2)
2015-06-03 13:38
483 查看
1.目标函数
目标函数的使用
一个目标函数(损失函数或优化函数)是编译一个model需要的参数。
可以通过传递现有对象的名称或者Theano符号函数返回一个scalar,需要以下的两个参数:
y_true: True 标签. Theano tensor.
y_pred: Predictions. Theano tensor .与y_true相同的shape.
具体函数的实例,可以参考keras.
常用的目标函数
mean_squared_error / mse 均方差
mean_absolute_error / mae 平均绝对误差
squared_hinge
hinge
binary_crossentropy: 就是 logloss.
categorical_crossentropy: 就是multiclass logloss. 注意:使用这个目标函数需要设置label为二进制数组的形式。
2.模型
也就是线性叠加的网络层。
方法:
add(layer): 往模型中添加一个层.
compile(optimizer, loss, class_mode=”categorical”):
参数:
optimizer: str (优化函数的名称) 或者优化对象.参考 optimizers.
loss: str (目标函数的名称) 或者目标函数. 参考 objectives.
class_mode: 值为”categorical”, “binary”. 用于计算分类正确率或调用 predict_classes方法.
theano_mode: A theano.compile.mode.Mode (reference).
fit(X, y, batch_size=128, nb_epoch=100, verbose=1, validation_split=0., validation_data =None, shuffle=True, show_accuracy=False): 固定的 epochs训练一个模型.
返回值:记录在字典中的训练成功的损失值,也可是验证损失值或精确度(适用的话).
参数:
X: data.
y: labels.
batch_size: int. 每一次迭代的样本数目.
nb_epoch: int.
verbose: 0 表示不更新日志, 1 更新日志, 2 每个epoch一个进度行.
validation_split: float (0 < x < 1).验证集的一部分.
validation_data: tuple (X, y) 数据作为验证集. 将加载validation_split.
shuffle: boolean. 每个 epoch是否随机抽取样本.
show_accuracy: boolean. 每个epoch是否显示分类正确率.
evaluate(X, y, batch_size=128, show_accuracy=False, verbose=1): 通过验证集的数据显示model的性能.
Return: 返回数据的损失值.
Arguments: 和上面fit函数定义相同. verbose用作二进制标识(进度条或无).
predict(X, batch_size=128, verbose=1):
Return: 测试数据的预测数组.
Arguments: 和fit一样.
predict_classes(X, batch_size=128, verbose=1): 返回test data的类预测数组.
Return: 测试数据的标签数组.
Arguments: 和fit一样.
train(X, y, accuracy=False): 一个batch的梯度更新. if accuracy==False, return tuple (loss_on_batch, accuracy_on_batch). Else, return loss_on_batch.
Return: 损失值, 或者
test(X, y, accuracy=False): 一个batch的性能计算. if accuracy==False, return tuple (loss_on_batch, accuracy_on_batch). Else, return loss_on_batch.
Return: 损失值, 或
save_weights(fname):保存所有层的权值到HDF5文件中.
load_weights(fname): 加载保存在save_weights中模型权值. 只能加载相同结构的文件.
3.实例:
结果参考:models
目标函数的使用
一个目标函数(损失函数或优化函数)是编译一个model需要的参数。
model.compile(loss='mean_squared_error', optimizer='sgd')
可以通过传递现有对象的名称或者Theano符号函数返回一个scalar,需要以下的两个参数:
y_true: True 标签. Theano tensor.
y_pred: Predictions. Theano tensor .与y_true相同的shape.
具体函数的实例,可以参考keras.
常用的目标函数
mean_squared_error / mse 均方差
mean_absolute_error / mae 平均绝对误差
squared_hinge
hinge
binary_crossentropy: 就是 logloss.
categorical_crossentropy: 就是multiclass logloss. 注意:使用这个目标函数需要设置label为二进制数组的形式。
(nb_samples, nb_classes)
2.模型
也就是线性叠加的网络层。
model = keras.models.Sequential()
方法:
add(layer): 往模型中添加一个层.
compile(optimizer, loss, class_mode=”categorical”):
参数:
optimizer: str (优化函数的名称) 或者优化对象.参考 optimizers.
loss: str (目标函数的名称) 或者目标函数. 参考 objectives.
class_mode: 值为”categorical”, “binary”. 用于计算分类正确率或调用 predict_classes方法.
theano_mode: A theano.compile.mode.Mode (reference).
fit(X, y, batch_size=128, nb_epoch=100, verbose=1, validation_split=0., validation_data =None, shuffle=True, show_accuracy=False): 固定的 epochs训练一个模型.
返回值:记录在字典中的训练成功的损失值,也可是验证损失值或精确度(适用的话).
参数:
X: data.
y: labels.
batch_size: int. 每一次迭代的样本数目.
nb_epoch: int.
verbose: 0 表示不更新日志, 1 更新日志, 2 每个epoch一个进度行.
validation_split: float (0 < x < 1).验证集的一部分.
validation_data: tuple (X, y) 数据作为验证集. 将加载validation_split.
shuffle: boolean. 每个 epoch是否随机抽取样本.
show_accuracy: boolean. 每个epoch是否显示分类正确率.
evaluate(X, y, batch_size=128, show_accuracy=False, verbose=1): 通过验证集的数据显示model的性能.
Return: 返回数据的损失值.
Arguments: 和上面fit函数定义相同. verbose用作二进制标识(进度条或无).
predict(X, batch_size=128, verbose=1):
Return: 测试数据的预测数组.
Arguments: 和fit一样.
predict_classes(X, batch_size=128, verbose=1): 返回test data的类预测数组.
Return: 测试数据的标签数组.
Arguments: 和fit一样.
train(X, y, accuracy=False): 一个batch的梯度更新. if accuracy==False, return tuple (loss_on_batch, accuracy_on_batch). Else, return loss_on_batch.
Return: 损失值, 或者
tuple (loss, accuracy)if
accuracy=True.
test(X, y, accuracy=False): 一个batch的性能计算. if accuracy==False, return tuple (loss_on_batch, accuracy_on_batch). Else, return loss_on_batch.
Return: 损失值, 或
tuple (loss, accuracy)if
accuracy=True.
save_weights(fname):保存所有层的权值到HDF5文件中.
load_weights(fname): 加载保存在save_weights中模型权值. 只能加载相同结构的文件.
3.实例:
from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import SGD model = Sequential() model.add(Dense(64, 2, init='uniform')) model.add(Activation('softmax')) model.compile(loss='mse', optimizer='sgd') ''' Demonstration of verbose modes 1 and 2 ''' model.fit(X_train, y_train, nb_epoch=3, batch_size=16, verbose=1) model.fit(X_train, y_train, nb_epoch=3, batch_size=16, verbose=2) ''' Demonstration of show_accuracy ''' model.fit(X_train, y_train, nb_epoch=3, batch_size=16, verbose=2, show_accuracy=True) ''' Demonstration of validation_split ''' model.fit(X_train, y_train, nb_epoch=3, batch_size=16, validation_split=0.1, show_accuracy=True, verbose=1)
结果参考:models
相关文章推荐
- 一边学,一边写出的人工智能教程(二)
- 一边学,一边写出的人工智能教程(一)
- windows 安装 keras框架
- 2017 知乎看山杯机器学习挑战赛经验总结(一)
- 告别Carvana汽车图像去背景比赛
- Keras的优缺点
- 在window10下安装theano GPU版本+keras1.2
- Keras实现的文本情感分类例子
- 安装Keras的问题:Failed building wheel for scipy
- keras环境配置小问题总结
- keras的零碎笔记
- Tensorflow与Keras自适应使用显存
- 深度学习框架keras安装(后端基于Tensorflow/theano)
- pip install换源
- anaconda python下openCV+theano+keras配置全过程
- A Case Study of KERAS for Digits Classification
- KERAS: objective or loss functions
- keras实现Bi-LSTM+CRF
- 基于递归神经网络(RNN)的口语理解(SLU)
- ubuntu上安装keras + tensorflow