我需要关于机器学习模型训练准确性的帮助。机器学习精度显示为0
我的训练输入是有500个整数/数据的数组,我将它保存在hdf5文件中名为'the_data'的数据集下。在这个例子中,我有100个数组。
[[1,2,3,...500],
[501,502,...1000],
[1001,... ],
....
...... ]]
输出是一个随机数,我手边生成并将其保存为'output.txt'。它有100个随机数。
194521, 307329, 182440, 180444, 275690,...,350879
下面是基于http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/
import h5py
from keras.models import Sequential
from keras.layers import Dense
seed = 7
np.random.seed(seed)
input_data = h5py.File('test.h5', 'r')
output_data = open("output.txt", "r")
X = input_data['the_data'][:]
Y = output_data.read().split(',')
model = Sequential()
model.add(Dense(500, input_dim=500, init='normal', activation='relu'))
model.add(Dense(100, init='normal', activation='relu'))
model.add(Dense(60, init='normal', activation='relu'))
model.add(Dense(1, init='normal', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adamax', metrics=['accuracy'])
model.fit(X, Y, nb_epoch=500, batch_size=10)
scores = model.evaluate(X, Y)
print("%s: %.2f%% , %s: %.2f%%" % (model.metrics_names[0], scores[0]*100, model.metrics_names[1], scores[1]*100))
我得到了作为结果就像是我修改后的脚本这个
Epoch 500/500
100/100 [==============================] - 0s - loss: -4851446.0896 - acc: 0.0000e+00
100/100 [==============================] - 0s
loss: -485144614.93% , acc: 0.00%
有谁有关于为什么会发生这种情况的任何想法?
谢谢你的帮助。
是的,谢谢你为我指出二进制crossentropy。我没有太多的想法,因为我太专注于输出。我会更多地关注你的建议。 此外,我只是想尝试如果网络也可以识别数值作为输出。没有其他原因。 谢谢你的回答。 – Fang