機械学習のモデルを訓練するための正確さについて助けが必要です。機械学習の精度が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%
のようなものであるように私が得たもの誰もこれが起こったん理由についてどんな考えを持っていますか?
ありがとうございました。
はい、私のためにバイナリクロスエントロピーを指示していただきありがとうございます。私はアウトプットに集中しすぎていたので、あまり考えなかった。私はあなたが提案したものについてもっと見ていきます。 また、ネットワークが数字の値を出力として認識できるかどうか試したかっただけです。その他の理由はありません。 ありがとうございます。 – Fang