簡體   English   中英

具有多個輸入的饋送keras模型

[英]Feeding keras model with multiple inputs

我正在嘗試與Keras打個招呼,陷入困境。 剛開始時,我有1層1輸入1輸出,對於直線逼近效果很好;)

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import RMSprop
from keras.losses import mean_squared_error
mo = Sequential()
d = Dense(1, input_shape=(1,))
mo.add(d)
mo.summary()

mo.compile(loss=mean_squared_error, optimizer=RMSprop(lr=0.4), metrics=['accuracy'])

mo.trainable = True

for i in range(-100, 100):
    mo.train_on_batch(x = [i], y = [i])

之后,我對2個輸入參數非常勇敢:

d = Dense(1, input_shape=(2,))
for i in range(-100, 100):
    mo.train_on_batch(x = [np.array([i,i])], y = [i])

np.array([1,1]).shape # gives (2,)

雖然我遇到一個例外:

ValueError:檢查輸入時出錯:預期density_53_input具有形狀(2,),但數組的形狀為(1,)

我嘗試了[[i],[i]]類的各種組合。

第一維始終是Keras中的批次維。 批次大小是指一次通過(向前和向后)處理的樣品數量。 當您指定input_shape參數時,它不包括批次尺寸。 因此,輸入形狀為(2,)的網絡采用形狀為(?,2)輸入數據,其中? 指批次大小。 因此,您必須傳遞形狀為(?,2)數組:

mo.train_on_batch(x=[np.array([[i,i]])], y=[i])

以來:

np.array([[i,i]]).shape   # it is (1,2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM