model.fit()
Keras中的fit函数会返回一个History对象,它的History.history属性会把之前的那些值全保存在里面,如果有验证集的话,也包含了验证集的这些指标变化情况,具体写法:
hist=model.fit(train_set_x,train_set_y,batch_size=256,shuffle=True,nb_epoch=nb_epoch,validation_split=0.1)
with open('log_sgd_big_32.txt','w') as f:
f.write(str(hist.history))
history对象包含两个重要属性:
epoch:训练的轮数
history:它是一个字典,包含val_loss,val_acc,loss,acc四个key。
关于训练集,验证集和测试集:
验证集是从训练集中抽取出来用于调参的,而测试集是和训练集无交集的,用于测试所选参数用于该模型的效果的,这个还是不要弄错了。。。在Keras中,验证集的划分只要在fit函数里设置validation_split的值就好了,这个对应了取训练集中百分之几的数据出来当做验证集。但由于shuffle是在validation _split之后执行的,所以如果一开始训练集没有shuffle的话,有可能使验证集全是负样本。测试集的使用只要在evaluate函数里设置就好了。
print model.evaluate(test_set_x,test_set_y ,batch_size=256)
这里注意evaluate和fit函数的默认batch_size都是32,自己记得修改。
总结:
验证集是在fit的时候通过validation_split参数自己从训练集中划分出来的;
测试集需要专门的使用evaluate去进行评价。
摘录自:https://cloud.tencent.com/developer/article/1437999