私はKerasで機械学習を始めようとしています。Keras:精度はゼロのままです
私は数学者ではなく、ニューラルネットワーク(ハハはそれを得る方法)の基本的な理解しか持っていないので、簡単に私に行ってください。
from keras.utils import plot_model
from keras.models import Sequential
from keras.layers import Dense
from keras import optimizers
import numpy
# fix random seed for reproducibility
numpy.random.seed(7)
# split into input (X) and output (Y) variables
X = []
Y = []
count = 0
while count < 10000:
count += 1
X += [count/10000]
numpy.random.seed(count)
#Y += [numpy.random.randint(1, 101)/100]
Y += [(count + 1)/100]
print(str(X) + ' ' + str(Y))
# create model
model = Sequential()
model.add(Dense(50, input_dim=1, kernel_initializer = 'uniform', activation='relu'))
model.add(Dense(50, kernel_initializer = 'uniform', activation='relu'))
model.add(Dense(1, kernel_initializer = 'uniform', activation='sigmoid'))
# Compile model
opt = optimizers.SGD(lr=0.01)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
# Fit the model
model.fit(X, Y, epochs=150, batch_size=100)
# evaluate the model
scores = model.evaluate(X, Y)
predictions = model.predict(X)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
print (str(predictions))
##plot_model(model, to_file='C:/Users/Markus/Desktop/model.png')
精度がゼロになったままで、予測が1の配列です:
これは私の現在のコードです。私は間違って何をしていますか?
浮動小数点予測を行う方法はありませんか? –
はいできます。損失関数を平均二乗誤差のようなものに変更する必要があります。これを確認してください:[](https://keras.io/losses/)。また、おそらく最後のレイヤーでシグモイド活性化を取り除きたいと思うかもしれません... –
さて、私はそれを働かせました。しかし、その損失は小さなものでほとんどなく、ほとんど無くなります。どのような種類のネットワークをお勧めしますか? –