keras创建方式
序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。
一些相同的方法
model.summary()
model.get_config 返回包含配置信息的python字。模型也能从它的config信息重构回去
config=model.get_config()
model=Model.from_config(config ) 或者model=Sequential.from_config(config)
一 Sequential
向模型中添加一个层 add
弹出模型的最后一个层 pop
编译用来配置模型的学习过程,compile(self,optimizer,loss,metrics,sample_weight)
其中 optimizer是优化器 loss是目标函数或者预定义损害函数名 metrics 列表,是训练和评估网络性能的指标metrics=【‘accuracy’】
训练模型 fit(self,x,y,batch_size,epoches,verbose,callbacks,validataion_split,validata_data,shuffle,class_weight,sample_weight,initial_epoch)
x y分别是训练数据和标签数据,如果模型只有一个输入,那么x的类型是numpy array,如果模型有多个输入,那么x的类型为list,
batch_size 指定进行梯度下降时每个batch包含的样本量,训练一个batch的样本会被计算一次梯度下降,是目标函数优化一次。
epochs.整数,终止训练的轮数,即训练完一次完整全部的数据
verbose 0不输出日志 1输出进度条 2 每个epoch输出一行记录
callbacks list,其中的元素是keras.callback.Callback对象,列表中的回调函数将会在训练的过程中被调用
validataion_split
vaildation_data
shuffer是否随机打乱样本的顺序
class_weight 将不同的类别映射为不同的权值,
fit函数返回一个History对象,其Histroy.history属性记录了损失函数和其他指标的数值随epoch变化的情况,
evaluat(x,y,batch_size,verbose,sample_weight)计算在某些输入数据上模型的误差
predict(x,batch_size,verbose)按照batch获得输入的数据对应的输出。
train_on_batch(x,y,class_weight,sample_weight)
test_on_batch(x,y,sample_weight)
predict_on_batch(x)在一个batch的 样本上对模型进行测试
fit_generator(generator,step_batch,epoch,verbose,callback,validata_data,validation_steps,class_weight,max_q_size,workers,pickle_safe,initial_epoch)
利用python的生产器,逐个生成数据的batch并进行训练,生成器与模将并行执行以提高效率。
evaluate_generator()
predict_generator()
二 Model方式
keras的函数式模型为Model,即广义的拥有输入和输出的模型,我们使用model模型来初始化一个函数式模型
from keras.models improt Model
from keras.layers import Input,Dense
a=Input(shape)
b=Dense(32)a
model=Model(inputs=a,outputs=b)
这里模型以a为输入,b为输出,我们同样可以构造拥有多输入和多输出的模型
model=Model(inputs=[a,b,c],outputs=[c1,b2,b3])
常用的model属性
model.layers 组成模型图的各个层
model.inputs 模型的输入张量列表
model.outputs 模型的输出张量列表
Model模型方法
compile(optimizer,loss.metrics,loss_weights,sample_weights,weighted_metrics,target_tensor)
本函数编译模型以供训练
fit(x,y,batch_size,epochs,verbose,callbacks,validation_split,validation_data,shuffle,
class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None
)
evaluate()按照batch计算在某些输入数据上模型的误差
predict(x,batch_size,verbose)本函数按照batch获得输入数据对应的输出
test_on_batch(x,y,sample_weight)
predict_on_batch(x)
train_on_batch(x,y,class_weight,sample_weight)
fit_generator(generator,step_per_epoch,epochs,verbose,callbacks,validation_data,
validation_steps=None, class_weight=None, max_q_size=10, workers=1, pickle_safe=False, initial_epoch=0
)
evaluate_generator(generator,steps,max_q_size,worker,pickle_safe)
predict_generator(generator,steps,max_queue_lsit,workers,use_multiprocessing,verbose)

浙公网安备 33010602011771号