很简单的问题ANN都解决不了? Tensorflow 神经网络,人工智能

Very easy problem can't be solved by the ANN? Tensorflow Neural Net, Artificial Intelligence

我不明白为什么下面的 ANN 无法学习这个极其简单的输入输出问题。我想我的代码中有错误,但我没有找到它。

X = np.array([[ 1.,  1., -1.,  1.],
              [ 1.,  1.,  1.,  1.],
              [ 1.,  1.,  1.,  1.]])

Y = np.array([[ 1.,  1., -5.,  1.],
              [ 1.,  1.,  1.,  1.],
              [ 1.,  1.,  1.,  1.]])
 


model = Sequential()
model.add(Dense(4, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(16, activation='relu'))
model.add(Dense(4, activation='linear'))
model.compile(loss='mse', optimizer='adam', metrics=['mae'])

erg = model.fit(X,Y, epochs=10, batch_size=1, verbose=1)

就像 Matias 提到的那样,您在最后一层使用 softmax 激活,它不能用于在数据集中生成结果,因为只有当您设置数据集目标时,softmax 激活才有用作为输出层中的激活是某种概率。使用 linear 而不是 softmax 应该会有所帮助。

model.add(Dense(4, activation='linear'))