2
我是keras的新手,我嘗試構建自己的神經網絡。如何在keras上構建簡單的神經網絡(不是圖像識別)
任務:
我需要寫一個系統,可以使人物,這可能滿足一個或多個敵人的決定。該系統可以知道:
- 百分比衛生字符
- 手槍的存在;
- 敵人的數量。
答案必須是下列之一形式:
- 攻擊
- 運行
- 隱藏(用於偷襲)
- 什麼也不做
爲了培養起來,我做了一個「課程」的表格:
https://i.stack.imgur.com/lD0WX.png
因此,這裏是我的代碼:
# Create first network with Keras
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
import numpy
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# split into input (X) and output (Y) variables
X = numpy.array([[0.5,1,1], [0.9,1,2], [0.8,0,1], [0.3,1,1], [0.6,1,2], [0.4,0,1], [0.9,1,7], [0.5,1,4], [0.1,0,1], [0.6,1,0], [1,0,0]])
Y = numpy.array([[1],[1],[1],[2],[2],[2],[3],[3],[3],[4],[4]])
# create model
model = Sequential()
model.add(Dense(3, input_dim=3, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
sgd = SGD(lr=0.001)
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])
# Fit the model
model.fit(X, Y, nb_epoch=150)
# calculate predictions
predictions = model.predict(X)
# round predictions
rounded = [round(x) for x in predictions]
print(rounded)
在這裏,我的預測得到。 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]
每個時期的準確度是0.2727,損失是減少的。 這是不對的。
我試圖把學習速度除以10,改變激活和優化。即使我手動輸入數據。 任何人都可以告訴我如何解決我的簡單問題。謝謝。