Use matplotlib para dibujar gráficos de líneas atractivos

Use matplotlib para dibujar gráficos de líneas atractivos


Descripción del problema

Al entrenar una red neuronal, se genera una gran cantidad de datos, incluidos, entre otros, train_loss, test_accuracy. Estos datos generalmente se guardan en archivos .csv, pero es realmente problemático dibujar la curva manualmente cada vez, y el gráfico para el informe semanal no necesita ser tan refinado, siempre que pueda ver la tendencia. Es realmente conveniente dibujar imágenes automáticamente y guardarlas en la carpeta especificada cuando se entrena el modelo.

Solución

1. Guarda los datos de entrenamiento de cada época en una lista.
2. Dibujo.

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

x1 = range(0, T, 1)
y1 = final_train_loss#final_train_loss是一个list
y2 = final_test_loss
y3 = final_train_accuracy
y4 = final_test_accuracy

#########huitu#########
plt.figure()
plt.plot(x1, y1, '.-',label='train_loss')
plt.plot(x1, y2, '--',label='test_loss')
plt.title('loss & communication round')
plt.ylabel('loss')
plt.xlabel('T')
plt.xticks(rotation=45)
plt.legend()
plt.grid(True)
plt.savefig('./SimulationData/FL_Dynamic/Weight/%s_Dynamic_fed_weight%s_%s_%sUEs_%s_T%s_epoch%s_iid%s_%s_%s_LOSS.png'\
            %(Time,weight,have_classifier, args.num_users, args.dataset,T,args.set_local_ep,args.iid, args.degree_noniid,timeslot))
  

plt.figure()
# plt.style.use('ggplot') #给图片换不同的风格
plt.plot(x1, y3, '.-',label='train_acc')
plt.plot(x1, y4,'--',label='test_acc')
plt.title('accuracy & communication round')#设置图片标题
plt.ylabel('accuracy')#纵坐标
plt.xlabel('T') #横坐标
plt.xticks(rotation=45)#坐标轴旋转45度
plt.legend()#显示图例
plt.grid(True)
#将图片保存指定文件夹下并命名为指定名字
plt.savefig('./SimulationData/FL_Dynamic/Weight/%s_Dynamic_fed_weight%s_%s_%sUEs_%s_T%s_epoch%s_iid%s_%s_%s_ACCURACY.png'\
            %(Time,weight,have_classifier, args.num_users, args.dataset,T,args.set_local_ep,args.iid, args.degree_noniid,timeslot))
# plt.show()

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Bueno, resulta que el modelo está sobreajustado, pero esta imagen parece estar bien, bastante hermosa ~
Enlace de referencia: https://zhuanlan.zhihu.com/p/24675460

Supongo que te gusta

Origin blog.csdn.net/qq_38703529/article/details/121914006
Recomendado
Clasificación