【经典代码】绘制不同模型的准确率和损失函数对比图

前提是模型训练过程的数据已经保存好

在这里插入图片描述

学习测试代码

# -*- coding: utf-8 -*-
# @Time : 2022/6/29 15:24
# @Author : xlf
# @File : test.py

import pandas as pd
from matplotlib import pyplot as plt
from sklearn import manifold, datasets
plt.rc('font', family='Times New Roman', size=16)

# 读取数据
cnn_lstm = pd.read_excel('analyse_data/csv/cnn_lstm.xlsx')
cnn_gru = pd.read_excel('analyse_data/csv/cnn_gru.xlsx')
cnn_bilstm = pd.read_excel('analyse_data/csv/cnn_bilstm.xlsx')
cnn_bigru = pd.read_excel('analyse_data/csv/cnn_bigru.xlsx')

# 提取数据
epoch_list = list(range(501))

# 提取准确度数据
cnn_lstm_accuracy = cnn_lstm.cnn_lstm_accuracy.tolist()
cnn_gru_accuracy = cnn_gru.cnn_gru_accuracy.tolist()
cnn_bilstm_accuracy = cnn_bilstm.cnn_bilstm_accuracy.tolist()
cnn_bigru_accuracy = cnn_bigru.cnn_bigru_accuracy.tolist()

# 提取损失值数据
cnn_lstm_loss = cnn_lstm.cnn_lstm_loss.tolist()
cnn_gru_loss = cnn_gru.cnn_gru_loss.tolist()
cnn_bilstm_loss = cnn_bilstm.cnn_bilstm_loss.tolist()
cnn_bigru_loss = cnn_bigru.cnn_bigru_loss.tolist()

# 绘制准确度对比图
plt.xlabel("Epoch")
plt.ylabel("Accuracy")
plt.plot(epoch_list, cnn_lstm_accuracy, linewidth='1', color='green', label='CNN_LSTM')
plt.plot(epoch_list, cnn_gru_accuracy, linewidth='1', color='blue', label='CNN_GRU')
plt.plot(epoch_list, cnn_bilstm_accuracy, linewidth='1', color='orange', label='CNN_BiLSTM')
plt.plot(epoch_list, cnn_bigru_accuracy, linewidth='1', color='red', label='CNN_BiGRU')
plt.rcParams.update({'font.size': 10})
plt.legend()
plt.show()

# 绘制损失值对比曲线
plt.figure(figsize=(10, 5))
plt.xlabel("Epoch")
plt.ylabel("Loss")
plt.plot(epoch_list, cnn_lstm_loss, linewidth='1', color='green', label='CNN_LSTM')
plt.plot(epoch_list, cnn_gru_loss, linewidth='1', color='blue', label='CNN_GRU')
plt.plot(epoch_list, cnn_bilstm_loss, linewidth='1', color='orange', label='CNN_BiLSTM')
plt.plot(epoch_list, cnn_bigru_loss, linewidth='1', color='red', label='CNN_BiGRU')
plt.legend()
plt.show()

结果展示

在这里插入图片描述

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用Keras库来实现简单的深度学习模型,并且可以通过调用Keras的回调函数来得到训练集和验证集的准确率曲线、损失函数曲线以及交叉熵函数曲线。 以下是一个简单的示例代码: ```python from keras.models import Sequential from keras.layers import Dense from keras.callbacks import Callback import matplotlib.pyplot as plt import numpy as np # 生成数据 x_train = np.random.rand(1000, 5) y_train = np.random.randint(2, size=(1000, 1)) x_val = np.random.rand(100, 5) y_val = np.random.randint(2, size=(100, 1)) # 定义模型 model = Sequential() model.add(Dense(32, activation='relu', input_dim=5)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy', 'binary_crossentropy']) # 定义回调函数 class LossHistory(Callback): def on_train_begin(self, logs={}): self.losses = [] self.val_losses = [] self.accs = [] self.val_accs = [] self.cross_entropy = [] self.val_cross_entropy = [] def on_batch_end(self, batch, logs={}): self.losses.append(logs.get('loss')) self.val_losses.append(logs.get('val_loss')) self.accs.append(logs.get('accuracy')) self.val_accs.append(logs.get('val_accuracy')) self.cross_entropy.append(logs.get('binary_crossentropy')) self.val_cross_entropy.append(logs.get('val_binary_crossentropy')) # 训练模型 history = LossHistory() model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val), callbacks=[history]) # 绘制准确率曲线和损失函数曲线 plt.figure(figsize=(10, 5)) plt.subplot(121) plt.plot(history.losses) plt.plot(history.val_losses) plt.title('Loss') plt.ylabel('loss') plt.xlabel('epoch') plt.legend(['train', 'val'], loc='upper right') plt.subplot(122) plt.plot(history.accs) plt.plot(history.val_accs) plt.title('Accuracy') plt.ylabel('accuracy') plt.xlabel('epoch') plt.legend(['train', 'val'], loc='lower right') plt.show() # 绘制交叉熵函数曲线 plt.figure(figsize=(5, 5)) plt.plot(history.cross_entropy) plt.plot(history.val_cross_entropy) plt.title('Cross Entropy') plt.ylabel('cross entropy') plt.xlabel('batch') plt.legend(['train', 'val'], loc='upper right') plt.show() ``` 在上面的代码中,我们定义了一个简单的神经网络模型,并使用Keras回调函数LossHistory来保存训练过程中的损失函数准确率和交叉熵函数。在模型训练完成后,我们可以使用matplotlib库来绘制训练集和验证集的准确率曲线、损失函数曲线和交叉熵函数曲线。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王摇摆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值