在tensorflow下利用plt畫論文中l(wèi)oss,acc等曲線圖實例
更新時間:2020年06月15日 14:57:00 作者:路上的病人
這篇文章主要介紹了在tensorflow下利用plt畫論文中l(wèi)oss,acc等曲線圖實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
直接上代碼:
fig_loss = np.zeros([n_epoch])
fig_acc1 = np.zeros([n_epoch])
fig_acc2= np.zeros([n_epoch])
for epoch in range(n_epoch):
start_time = time.time()
#training
train_loss, train_acc, n_batch = 0, 0, 0
for x_train_a, y_train_a in minibatches(x_train, y_train, batch_size, shuffle=True):
_,err,ac=sess.run([train_op,loss,acc], feed_dict={x: x_train_a, y_: y_train_a})
train_loss += err; train_acc += ac; n_batch += 1
summary_str = sess.run(merged_summary_op,feed_dict={x: x_train_a, y_: y_train_a})
summary_writer.add_summary(summary_str, epoch)
print(" train loss: %f" % (np.sum(train_loss)/ n_batch))
print(" train acc: %f" % (np.sum(train_acc)/ n_batch))
fig_loss[epoch] = np.sum(train_loss)/ n_batch
fig_acc1[epoch] = np.sum(train_acc) / n_batch
#validation
val_loss, val_acc, n_batch = 0, 0, 0
for x_val_a, y_val_a in minibatches(x_val, y_val, batch_size, shuffle=False):
err, ac = sess.run([loss,acc], feed_dict={x: x_val_a, y_: y_val_a})
val_loss += err; val_acc += ac; n_batch += 1
print(" validation loss: %f" % (np.sum(val_loss)/ n_batch))
print(" validation acc: %f" % (np.sum(val_acc)/ n_batch))
fig_acc2[epoch] = np.sum(val_acc) / n_batch
# 訓(xùn)練loss圖
fig, ax1 = plt.subplots()
lns1 = ax1.plot(np.arange(n_epoch), fig_loss, label="Loss")
ax1.set_xlabel('iteration')
ax1.set_ylabel('training loss')
# 訓(xùn)練和驗證兩種準確率曲線圖放在一張圖中
fig2, ax2 = plt.subplots()
ax3 = ax2.twinx()#由ax2圖生成ax3圖
lns2 = ax2.plot(np.arange(n_epoch), fig_acc1, label="Loss")
lns3 = ax3.plot(np.arange(n_epoch), fig_acc2, label="Loss")
ax2.set_xlabel('iteration')
ax2.set_ylabel('training acc')
ax3.set_ylabel('val acc')
# 合并圖例
lns = lns3 + lns2
labels = ["train acc", "val acc"]
plt.legend(lns, labels, loc=7)
plt.show()
結(jié)果:


補充知識:tensorflow2.x實時繪制訓(xùn)練時的損失和準確率
我就廢話不多說了,大家還是直接看代碼吧!
sgd = SGD(lr=float(model_value[3]), decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
# validation_split:0~1之間的浮點數(shù),用來指定訓(xùn)練集的一定比例數(shù)據(jù)作為驗證集
history=model.fit(self.x_train, self.y_train, batch_size=self.batch_size, epochs=self.epoch_size, class_weight = 'auto', validation_split=0.1)
# 繪制訓(xùn)練 & 驗證的準確率值
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
# 繪制訓(xùn)練 & 驗證的損失值
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
print("savemodel---------------")
model.save(os.path.join(model_value[0],'model3_3.h5'))
#輸出損失和精確度
score = model.evaluate(self.x_test, self.y_test, batch_size=self.batch_size)
以上這篇在tensorflow下利用plt畫論文中l(wèi)oss,acc等曲線圖實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python面向?qū)ο蟪绦蛟O(shè)計之繼承與多繼承用法分析
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計之繼承與多繼承用法,結(jié)合實例形式分析了Python繼承與多繼承的簡單定義與使用方法,需要的朋友可以參考下2018-07-07
詳解JavaScript編程中的window與window.screen對象
這篇文章主要介紹了JavaScript編程中的window與window.screen對象,是JS在瀏覽器中視圖編程的基礎(chǔ),需要的朋友可以參考下2015-10-10
Python pandas如何獲取數(shù)據(jù)的行數(shù)和列數(shù)
這篇文章主要介紹了Python pandas如何獲取數(shù)據(jù)的行數(shù)和列數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
PowerBI和Python關(guān)于數(shù)據(jù)分析的對比
這篇文章主要介紹了PowerBI和Python關(guān)于數(shù)據(jù)分析的對比,很多經(jīng)常會用到數(shù)據(jù)分析的伙伴會問有沒有一款便捷好用的工具!肯定有啊,Python的出現(xiàn)和普及,很容易就能改變這些窘境,需要的朋友可以參考下2019-07-07
詳解Python中__new__和__init__的區(qū)別與聯(lián)系
在Python中,每個對象都有兩個特殊的方法:__new__和__init__,本文將詳細介紹這兩個方法的不同之處以及它們之間的聯(lián)系,具有一定的參考價值,感興趣的可以了解一下2023-12-12

