我创建了一个包含4个隐藏层的神经网络,并使用ReLU作为它们的激活函数,并使用softmax输出图层。当我使用数据集为这个神经网络提供数据时,我从它产生的预测中获得了一些准确性,但是当我使用以下方法对相同数据进行标准化时:
nx= (X - mean(X)) / stdev(X)
产生的预测的准确性为零?!! 为什么会这样?任何想法!
我使用了这个简单的块:
# create model
model = Sequential()
model.add(Dense(hidden_size, input_dim=input_size, activation='relu'))
model.add(Dense(hidden_size, activation='relu'))
model.add(Dense(hidden_size, activation='relu'))
model.add(Dense(1, activation='softmax'))
# Compile model
model.compile(loss='mean_squared_logarithmic_error', optimizer='sgd', metrics=['accuracy'])
# Compile model
model.compile(loss='mean_squared_logarithmic_error', optimizer='sgd', metrics=['accuracy'])
print("Test \n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
# calculate predictions
predictions = model.predict(X_test)
答案 0 :(得分:0)
忘了括号(X-mean(X))/ std(X),但更可能是它的一些浮点int问题,我打赌你用零向量(nx == 0)或某种东西