在keras中實(shí)現(xiàn)查看其訓(xùn)練loss值
想要查看每次訓(xùn)練模型后的 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ù)據(jù); 有DataFrame數(shù)據(jù)結(jié)構(gòu),類(lèi)似表格。
x=np.linspace(-10, 10, 100) 生成100個(gè)在-10到10之間的數(shù)組
補(bǔ)充知識(shí):對(duì)keras訓(xùn)練過(guò)程中l(wèi)oss,val_loss,以及accuracy,val_accuracy的可視化
我就廢話不多說(shuō)了,大家還是直接看代碼吧!
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")
在訓(xùn)練時(shí),會(huì)輸出如下打?。?/p>
640/640 [==============================] - 35s 55ms/step - loss: 4.0216 - mean_absolute_error: 4.6525 - val_loss: 3.2888 - val_mean_absolute_error: 3.9109
有訓(xùn)練loss,訓(xùn)練預(yù)測(cè)準(zhǔn)確度,以及測(cè)試loss,以及測(cè)試準(zhǔn)確度,將文件保存后,使用下面的代碼可以對(duì)訓(xùn)練以及評(píng)估進(jìn)行可視化,下面有對(duì)應(yīng)的參數(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中實(shí)現(xiàn)查看其訓(xùn)練loss值就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python基礎(chǔ)之while循環(huán)、for循環(huán)詳解及舉例
所謂循環(huán)結(jié)構(gòu)就是程序中控制某條或某些指令重復(fù)執(zhí)行的結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之while循環(huán)、for循環(huán)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析
這篇文章主要介紹了關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析,推導(dǎo)式comprehensions,又稱解析式,是Python的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體,需要的朋友可以參考下2023-08-08python uvloop事件循環(huán)庫(kù)使用功能示例探究
這篇文章主要為大家介紹了python uvloop事件循環(huán)庫(kù)使用功能示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01OpenCV之理解KNN鄰近算法k-Nearest?Neighbour
這篇文章主要為大家介紹了OpenCV之理解KNN鄰近算法k-Nearest?Neighbour,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05基于matplotlib中ion()和ioff()的使用詳解
這篇文章主要介紹了基于matplotlib中ion()和ioff()的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python讀取多列數(shù)據(jù)以及用matplotlib制作圖表方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Python讀取多列數(shù)據(jù)以及用matplotlib制作圖表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Opencv實(shí)現(xiàn)眼睛控制鼠標(biāo)的實(shí)踐
本文主要介紹了Opencv實(shí)現(xiàn)眼睛控制鼠標(biāo)的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02python 使用GDAL實(shí)現(xiàn)柵格tif轉(zhuǎn)矢量shp的方式小結(jié)
今天通過(guò)本文給大家分享python 使用GDAL實(shí)現(xiàn)柵格tif轉(zhuǎn)矢量shp的方式小結(jié),計(jì)劃是使用柵格轉(zhuǎn)矢量的方式,將柵格數(shù)據(jù)轉(zhuǎn)為矢量shp文件,然后進(jìn)行矢量切片,使用Mapbox進(jìn)行前端動(dòng)態(tài)渲染,具體內(nèi)容詳情跟隨小編一起看看吧2021-08-08