我正在尝试设计一个神经网络,以从包含高斯噪声的数据集数组中预测平滑底层函数的数组。我创建了一个包含 10000 个数组的训练和数据集。现在我试图预测实际函数的数组值,但它似乎失败了,而且准确性也不好。有人可以指导我如何进一步改进我的模型以获得更好的准确性并能够预测好的数据。我使用的代码如下:
用于生成测试和训练数据:
noisy_data = []
pure_data =[]
time = np.arange(1,100)
for i in tqdm(range(10000)):
array = []
noise = np.random.normal(0,1/10,99)
for j in range(1,100):
array.append( np.log(j))
array = np.array(array)
pure_data.append(array)
noisy_data.append(array+noise)
pure_data=np.array(pure_data)
noisy_data=np.array(noisy_data)
print(noisy_data.shape)
print(pure_data.shape)
training_size=6000
x_train = noisy_data[:training_size]
y_train = pure_data[:training_size]
x_test = noisy_data[training_size:]
y_test = pure_data[training_size:]
print(x_train.shape)
Run Code Online (Sandbox Code Playgroud)
我的型号:
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(99,)))
model.add(tf.keras.layers.Dense(768, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(768, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(99, activation=tf.nn.softmax))
model.compile(optimizer = 'adam',
loss = 'categorical_crossentropy',
metrics = ['accuracy'])
model.fit(x_train, y_train, epochs = 20)
Run Code Online (Sandbox Code Playgroud)
精度差的结果:
Epoch 1/20
125/125 …
Run Code Online (Sandbox Code Playgroud)