我正在嘗試與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/)。此外,你可能想要刪除最後一層中的S形激活... –
好吧,我得到它的工作。但是,損失由於小小的步驟而減少,幾乎沒有。你會推薦什麼樣的網絡來配合最好的參數? –