Issue
I am trying to plot 3 loss curves in one figure. I have the following problems.
I can't get a smooth curve, instead it joins point-to-point in a sharp line
How do I change the scales of the axis, to display the MSE loss which disappears because it is too small?
from matplotlib import pyplot as plt
epochs=list(range(5000,50001,5000))
print(epochs)
mae_loss=[0.500225365,
0.000221096,
0.000060971,
0.000060323,
0.000059905,
0.000059579,
0.000059274,
0.000058972,
0.000058697,
0.000058476]
mse_loss=[0.135419831,
0.018331185,
0.002481434,
0.000335913,
0.000045486,
0.000006180,
0.000000867,
0.000000147,
0.000000042,
0.000000042]
rmse_loss=[0.500225306,
0.000293739,
0.000126985,
0.000121944,
0.000119484,
0.000117791,
0.000116400,
0.000115198,
0.000114148,
0.000113228]
plt.plot(epochs, mae_loss, 'b', label='MAE')
plt.plot(epochs, mse_loss, 'r', label='MSE')
plt.plot(epochs, mse_loss, 'g', label='RMSE')
plt.legend()
plt.show()
Solution
You would require some interpolation methods to get a smooth spline/curve. That is in itself a different question. I will answer the question regarding the different scales. Since the order of magnitudes of your data are quite different, in such situations, the best solution is to use a logarithmic y-scale using semilogy
. P.S: You had written mse_loss
instead of rmse_loss
in the last plot line.
plt.semilogy(epochs, mae_loss, 'b', label='MAE')
plt.semilogy(epochs, mse_loss, 'r', label='MSE')
plt.semilogy(epochs, rmse_loss, 'g', label='RMSE')
plt.legend()
plt.show()
Answered By - Sheldore
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.