在keras中实现查看其训练loss值
想要查看每次训练模型后的loss值变化需要如下操作
loss_value=[] self.history=model.fit(state,target_f,epochs=1,batch_size=32) b=abs(float(self.history.history[‘loss'][0])) loss_value.append(b) print(loss_value) loss_value=np.array(loss_value) x=np.array(range(len(loss_value))) plt.plot(x,loss_value,c=‘g') pt.svefit('c地址‘,dpi=100) plt.show()
scipy.sparse稀疏矩阵函数集合
pandas用于在各种文件中提取,并处理分析数据;有DataFrame数据结构,类似表格。
x=np.linspace(-10,10,100)生成100个在-10到10之间的数组
补充知识:对keras训练过程中loss,val_loss,以及accuracy,val_accuracy的可视化
我就废话不多说了,大家还是直接看代码吧!
hist=model.fit_generator(generator=data_generator_reg(X=x_train,Y=[y_train_a,y_train_g],batch_size=batch_size), steps_per_epoch=train_num//batch_size, validation_data=(x_test,[y_test_a,y_test_g]), epochs=nb_epochs,verbose=1, workers=8,use_multiprocessing=True, callbacks=callbacks) logging.debug("Savingweights...") model.save_weights(os.path.join(db_name+"_models/"+save_name,save_name+'.h5'),overwrite=True) pd.DataFrame(hist.history).to_hdf(os.path.join(db_name+"_models/"+save_name,'history_'+save_name+'.h5'),"history")
在训练时,会输出如下打印:
640/640[==============================]-35s55ms/step-loss:4.0216-mean_absolute_error:4.6525-val_loss:3.2888-val_mean_absolute_error:3.9109
有训练loss,训练预测准确度,以及测试loss,以及测试准确度,将文件保存后,使用下面的代码可以对训练以及评估进行可视化,下面有对应的参数名称:
loss,mean_absolute_error,val_loss,val_mean_absolute_error
importpandasaspd importmatplotlib.pyplotasplt importargparse importos importnumpyasnp defget_args(): parser=argparse.ArgumentParser(description="Thisscriptshowstraininggraphfromhistoryfile.") parser.add_argument("--input","-i",type=str,required=True, help="pathtoinputhistoryh5file") args=parser.parse_args() returnargs defmain(): args=get_args() input_path=args.input df=pd.read_hdf(input_path,"history") print(np.min(df['val_mean_absolute_error'])) input_dir=os.path.dirname(input_path) plt.plot(df["loss"],'-o',label="loss(age)",linewidth=2.0) plt.plot(df["val_loss"],'-o',label="val_loss(age)",linewidth=2.0) plt.xlabel("Numberofepochs",fontsize=20) plt.ylabel("Loss",fontsize=20) plt.legend() plt.grid() plt.savefig(os.path.join(input_dir,"loss.pdf"),bbox_inches='tight',pad_inches=0) plt.cla() plt.plot(df["mean_absolute_error"],'-o',label="training",linewidth=2.0) plt.plot(df["val_mean_absolute_error"],'-o',label="validation",linewidth=2.0) ax=plt.gca() ax.set_ylim([2,13]) ax.set_aspect(0.6/ax.get_data_ratio()) plt.xticks(fontsize=20) plt.yticks(fontsize=20) plt.xlabel("Numberofepochs",fontsize=20) plt.ylabel("Meanabsoluteerror",fontsize=20) plt.legend(fontsize=20) plt.grid() plt.savefig(os.path.join(input_dir,"performance.pdf"),bbox_inches='tight',pad_inches=0) if__name__=='__main__': main()
以上这篇在keras中实现查看其训练loss值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。