Advertisement
New_T

MLP Regressão

Oct 28th, 2021
1,359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.88 KB | None | 0 0
  1. import tensorflow as tf
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. from sklearn.metrics import mean_squared_error
  5.  
  6. entradaDadosTreino = np.sort(np.random.uniform(-2*np.pi, 2*np.pi, 1000))[:, np.newaxis]
  7. saidaDadosTreino = (np.sin(entradaDadosTreino)/entradaDadosTreino).ravel()
  8.  
  9. entradaDadosTest = np.arange(-2*np.pi, 2*np.pi, 0.001)[:, np.newaxis]
  10.  
  11. model = tf.keras.models.Sequential([
  12.   tf.keras.Input(shape=(1,)),
  13.   tf.keras.layers.Dense(500, activation= "relu"),
  14.   tf.keras.layers.Dense(100, activation= "relu"),
  15.   tf.keras.layers.Dense(50, activation= "relu"),
  16.   tf.keras.layers.Dense(1)
  17. ])
  18. model.compile(loss= "mean_squared_error" ,
  19.               optimizer="adam",
  20.               metrics=["mean_squared_error"])
  21.  
  22. returns = model.fit(entradaDadosTreino, saidaDadosTreino, epochs=100)              
  23.  
  24.  
  25.  
  26. preditTest = model.predict(entradaDadosTest)
  27.  
  28. predTrain= model.predict(entradaDadosTreino)
  29. print("RMSE Treino = ",np.sqrt(mean_squared_error(saidaDadosTreino,predTrain)))
  30.  
  31. saidaDadosTest = (np.sin(entradaDadosTest)/entradaDadosTest).ravel()
  32. print("RMSE Test = ",np.sqrt(mean_squared_error(saidaDadosTest,preditTest)))
  33.  
  34.  
  35.  
  36.  
  37.  
  38. fig = plt.subplots(2)
  39. plt.subplots_adjust(hspace = 1.0)
  40. plt.subplot(2, 1, 1)
  41. plt.plot(entradaDadosTreino,saidaDadosTreino)
  42. plt.xlabel('X')
  43. plt.ylabel('Y')
  44. plt.xlim(-2*np.pi, 2*np.pi)
  45. plt.title(r'$Sinc(x) = \frac{\mathrm{sin}(x)}{x}$', fontsize=20)
  46. possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
  47. legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
  48. plt.xticks(possicaoLegendaX, legendaX)
  49. plt.subplot(2, 1, 2)
  50. plt.plot(entradaDadosTest,preditTest,'r')
  51. plt.xlabel('X')
  52. plt.ylabel('Y')
  53. plt.xlim(-2*np.pi, 2*np.pi)
  54. plt.title(r'$Predict \approx Sinc(x)$', fontsize=20)
  55. possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
  56. legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
  57. plt.xticks(possicaoLegendaX, legendaX)
  58. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement