在keras中實現(xiàn)查看其訓練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 稀疏矩陣 函數(shù)集合
pandas 用于在各種文件中提取,并處理分析數(shù)據; 有DataFrame數(shù)據結構,類似表格。
x=np.linspace(-10, 10, 100) 生成100個在-10到10之間的數(shù)組
補充知識:對keras訓練過程中l(wèi)oss,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("Saving weights...")
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")
在訓練時,會輸出如下打?。?/p>
640/640 [==============================] - 35s 55ms/step - loss: 4.0216 - mean_absolute_error: 4.6525 - val_loss: 3.2888 - val_mean_absolute_error: 3.9109
有訓練loss,訓練預測準確度,以及測試loss,以及測試準確度,將文件保存后,使用下面的代碼可以對訓練以及評估進行可視化,下面有對應的參數(shù)名稱:
loss,mean_absolute_error,val_loss,val_mean_absolute_error
import pandas as pd
import matplotlib.pyplot as plt
import argparse
import os
import numpy as np
def get_args():
parser = argparse.ArgumentParser(description="This script shows training graph from history file.")
parser.add_argument("--input", "-i", type=str, required=True,
help="path to input history h5 file")
args = parser.parse_args()
return args
def main():
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("Number of epochs", 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("Number of epochs", fontsize=20)
plt.ylabel("Mean absolute error", 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中實現(xiàn)查看其訓練loss值就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python2 中 unicode 和 str 之間的轉換及與python3 str 的區(qū)別
這篇文章主要介紹了python2 中 unicode 和 str 之間的轉換及與python3 str 的區(qū)別 本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
python global的創(chuàng)建和修改實例講解
在本篇文章里小編給大家整理了一篇關于python global的創(chuàng)建和修改實例講解內容,有興趣的朋友們可以學習下。2021-09-09
Python實現(xiàn)的求解最大公約數(shù)算法示例
這篇文章主要介紹了Python實現(xiàn)的求解最大公約數(shù)算法,涉及Python數(shù)學運算相關操作技巧,需要的朋友可以參考下2018-05-05

