기계 학습을위한 모델 교육의 정확성에 대한 도움이 필요합니다.기계 학습 정확도가 0으로 표시됩니다.
교육용 입력은 500 개의 정수/데이터로 구성된 여러 개의 배열로, 'the_data'라는 데이터 세트의 hdf5 파일에 저장했습니다. 이 예제에서는 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