我對機器學習很陌生,最近我開始學習如何使用庫Keras實現基本的Python神經網絡。Keras:用aray作爲輸入進行訓練
我從一個基本例子開始(訓練一個網絡,以便它可以預測值y = f(x)= x)。
model = Sequential()
model.add(Dense(10, input_dim=1, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1))
model.compile(loss='mse', optimizer='adam')
data = np.array([x for x in range(0,1000)])
for i in range(0, 1000):
model.fit([np.array([data[i]]), np.array([data[i]]), nb_epoch=1, batch_size=1, verbose=0)
現在我想申請一個類似的算法來的整數升的列表列車內的網絡的話,它會回到我的函數f的三個值(基本的列表:[F(L,0) ,f(L,1),f(L,2)])。所以這次的輸入是一個由5個整數組成的數組,並且所需的返回輸出是一個3個浮點數的列表。
但是,我沒有設法正確編寫for循環中的fit方法,我收到一條錯誤消息:「預計會看到1個數組,但是會得到以下2個數組的列表:...」。我試圖玩弄一些密集構造函數(input_dim,input_shape,input_size)的參數,但我似乎仍然無法使其工作...
所以基本上,沒有人知道如何正確實施將數組作爲輸入並返回不同長度的數組的網絡?
非常感謝您的幫助和支持,
- SMGR
總數我不明白你正在嘗試做的。請先學習神經網絡才能使用Keras。如果你有兩個輸入維度,你的數據應該是'(batch_size,2)'形式。你不需要遍歷'fit'。你可以使用'nb_epoch'參數。這個問題和你的動機對我來說是非常不清楚的。所以我無法有效回答這個問題。 –
謝謝你的回答。我將盡量做到更精確... 我打算使用神經網絡進行一些Q學習。因此,我的網絡輸入是一個狀態s(由5個整數數組描述),結果是一個值爲Q(s,a)的數組,其中a可以取三個值(0,1或2)。 事情是,我沒有設法編譯我的模型與數組作爲輸入(與我顯示的代碼相比,我的網絡只使用一個整數作爲輸入的代碼),代碼返回一個關於它的大小的錯誤顯然。 – smgr
我可以做的是指向你[這裏](https://github.com/farizrahman4u/qlearning4k)。 –