[英]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.