除了用tensorboard,也可如此如此
history = model.fit(generate_data(npy_path + '/train'),
steps_per_epoch=len(os.listdir(npy_path + '/train')) // 3,
epochs=epochs,
validation_data=generate_valid_data(npy_path + '/test'),
validation_steps=len(os.listdir(npy_path + '/test'))//3)
history记录该过程,可在模型训练完后进行绘制:
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
save_path += '/'
epochs = 30
#显示训练过程
acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']
# result = [acc,val_acc,loss,val_loss]
np.save(save_path + 'acc.npy', acc)
np.save(save_path + 'val_acc.npy', val_acc)
np.save(save_path + 'loss.npy', loss)
np.save(save_path + 'val_loss.npy', val_loss)
print(history.history['acc'][-1])
print(history.history['val_acc'][-1])
plt.figure(1)
# plt.title('training curve',fontsize=20)
#设置图表标题和标题字号
plt.tick_params(axis='both',which='major',labelsize=14)
x = list(range(1, epochs + 1))
plt.xlabel('epoch',fontsize=14)
plt.ylabel('acc',fontsize=14)
plt.plot(x, acc, label='Training acc')
plt.plot(x, val_acc, label='Validation acc')
# plt.xlim(1,20)
# plt.ylim(-0.5,11)
x_major_locator=MultipleLocator(2)
ax=plt.gca()
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
plt.legend(loc = 'best', prop={'family':'simsun', 'size': 12})
plt.savefig(save_path + 'acc.png')
plt.figure(2)
x = list(range(1, epochs + 1))
plt.xlabel('epoch',fontsize=14)
plt.ylabel('loss',fontsize=14)
plt.plot(x, loss, label='Training loss')
plt.plot(x, val_loss, label='Validation loss')
# plt.xlim(1,20)
# plt.ylim(-0.5,11)
x_major_locator=MultipleLocator(2)
ax=plt.gca()
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
plt.legend(loc = 'best', prop={'family':'simsun', 'size': 12})
plt.savefig(save_path + 'loss.png')
plt.show()