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)

 

posted @ 2021-07-30 20:47  大大的海棠湾  阅读(93)  评论(0)    收藏  举报