簡體   English   中英

keras 順序類型錯誤:“NoneType”類型的 object 沒有 len()

[英]keras sequential TypeError: object of type 'NoneType' has no len()

我試圖創建一個簡單的 model,包裝在 keras 包裝器中。 當我用簡單的輸入測試它時,我得到TypeError: object of type 'NoneType' has no len() 我正在使用scikeras包裝器。

此外,錯誤是由於包裝器造成的,但不確定為什么,當我刪除包裝器時,上面的代碼可以正常工作。

輸入特征來自管道,經過一次熱編碼,因此如果有機會,更願意避免指定輸入大小。 如果 model 未包裝在回歸器中,則它正在工作,但不確定為什么它在包裝器中不起作用。

有人可以解釋如何解決這個問題嗎?

from tensorflow.keras.models import Sequential
from scikeras.wrappers import KerasRegressor

def build_net(net_loss = 'mean_squared_error', net_optimizer='adam',):

    model = Sequential()
    model.add(Dense(25, activation='relu'))
    model.add(Dense(9, activation='relu'))
    model.add(Dense(4, activation='relu'))
    model.add(Dense(1, activation='linear'))
    model.compile(loss=net_loss, optimizer=net_optimizer, metrics=['root_mean_squared_error','mean_absolute_error'])

    return model

net = KerasRegressor(model=build_net, epochs = 5, verbose=0)

net.fit(np.random.randint(50, size=(2000, 4)), np.random.randint(1, size=2000))

例如,您需要添加輸入形狀或圖層

model = Sequential()
model.add(Input(shape=(4,)))
model.add(Dense(25, activation='relu'))
...

或者像這樣

model = Sequential()
model.add(Dense(25, input_shape=(4,), activation='relu'))
model.add(Dense(9, activation='relu'))
...

暫無
暫無

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

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