【发布时间】:2021-06-10 09:47:07
【问题描述】:
我一直在尝试设计可以拟合这个多项式函数的神经网络:
y = 2x^2 + 4x^3 + 5
我做到了
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
import tensorflow as tf
from tensorflow import keras
def dataset(show=True):
X = np.arange(-25,25,0.1)
y = 2*X**2 + 4*X**3 + 5 + np.random.randn(500)*1000
if show :
plt.scatter(X,y)
plt.show()
return X,y
X,y = dataset()
X_scaled = X/max(X)
y_scaled = y/max(y)
poly = PolynomialFeatures(degree=4)
X_4 = poly.fit_transform(X_scaled.reshape(-1,1))
model = tf.keras.Sequential([keras.layers.Dense(units=1,input_shape=[5])])
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)
model.compile(optimizer=optimizer,loss='mean_squared_error')
tf_history = model.fit(X_4, y_scaled, epochs=200, verbose=True)
mse = tf_history.history['loss'][-1]
y_hat = model.predict(X_4)
指令说使用 1 个输入、1 个输出和 1 个隐藏层和 3 个神经元。 我应该如何配置这些?
【问题讨论】:
标签: tensorflow machine-learning deep-learning neural-network