Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tensorflow as tf
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn.metrics import mean_squared_error
- entradaDadosTreino = np.sort(np.random.uniform(-2*np.pi, 2*np.pi, 1000))[:, np.newaxis]
- saidaDadosTreino = (np.sin(entradaDadosTreino)/entradaDadosTreino).ravel()
- entradaDadosTest = np.arange(-2*np.pi, 2*np.pi, 0.001)[:, np.newaxis]
- model = tf.keras.models.Sequential([
- tf.keras.Input(shape=(1,)),
- tf.keras.layers.Dense(500, activation= "relu"),
- tf.keras.layers.Dense(100, activation= "relu"),
- tf.keras.layers.Dense(50, activation= "relu"),
- tf.keras.layers.Dense(1)
- ])
- model.compile(loss= "mean_squared_error" ,
- optimizer="adam",
- metrics=["mean_squared_error"])
- returns = model.fit(entradaDadosTreino, saidaDadosTreino, epochs=100)
- preditTest = model.predict(entradaDadosTest)
- predTrain= model.predict(entradaDadosTreino)
- print("RMSE Treino = ",np.sqrt(mean_squared_error(saidaDadosTreino,predTrain)))
- saidaDadosTest = (np.sin(entradaDadosTest)/entradaDadosTest).ravel()
- print("RMSE Test = ",np.sqrt(mean_squared_error(saidaDadosTest,preditTest)))
- fig = plt.subplots(2)
- plt.subplots_adjust(hspace = 1.0)
- plt.subplot(2, 1, 1)
- plt.plot(entradaDadosTreino,saidaDadosTreino)
- plt.xlabel('X')
- plt.ylabel('Y')
- plt.xlim(-2*np.pi, 2*np.pi)
- plt.title(r'$Sinc(x) = \frac{\mathrm{sin}(x)}{x}$', fontsize=20)
- possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
- legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
- plt.xticks(possicaoLegendaX, legendaX)
- plt.subplot(2, 1, 2)
- plt.plot(entradaDadosTest,preditTest,'r')
- plt.xlabel('X')
- plt.ylabel('Y')
- plt.xlim(-2*np.pi, 2*np.pi)
- plt.title(r'$Predict \approx Sinc(x)$', fontsize=20)
- possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
- legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
- plt.xticks(possicaoLegendaX, legendaX)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement