簡體   English   中英

如果 Keras Model.fit() 給出了輸入序列數組的列表,則輸入應如何關聯/映射到 label y >

[英]How input should relate/map to label y if Keras Model.fit() is given a list of input train arrays>

我正在嘗試在以下兩個場景中使用深度學習 model,其中給出了兩個不同的輸入。 我想實現以下目標:

  1. 使用相同的輸入訓練兩個模型(具有不同的權重但相同的架構)並連接結果。 所以在 model.fit() 中,我只傳遞了 trainX 值。 代碼如下。 它工作正常。

     def create_model(input_tensor): x= Conv1D(filters = 16, kernel size=6, strides = 5, kernel_initializer = "uniform", activation = "relu")(input_tensor) x= GlobalMaxPooling1D()(x) x = Dense(2,activation ='softmax')() return x dataframe = pd.read_csv(Filename, index_col=0) X= dataframe.values[:,:].astype(float) Y = dataframe.values[:,1] trainx, testx, trainy, testy = train_test_split(X,Y, test_Szie= 0.2, random_state=200, shuffle =True) input_shape = (33000,1) input_tensor = Input(input_shape) pred_a = create_model(input_tensor) pred_b = create_model(input_tensor) out = keras.layers.Multiply()([pred_a, pred_b]) model =Model(inputs=(input_tensor), outputs=out) model.compile(loss='categorical_crossentropy', optimizer= 'Adam', metrics =['accuracy']) histroy = model.fit(trainX, trainy)
  2. 訓練相同的 model(權重相同)兩次,但輸入不同。 在這種情況下,我很困惑如何傳遞輸入。 在正常情況下,trainX 和 trainy 數據中的實例數量相同。 如果我通過像model.fit([x_train_1, x_train_2], trainy)這樣的列表,那么組合 x_train_1, x_train_2 的實例數將是 y 的兩倍。 在這種情況下,trainy 與輸入 trainx 的對應程度如何?

model 的輸入和對應的 output 的形狀為 X = (batch_size, ....), y = (batch_size,....) 如果有多個輸入,您可以定義多個輸入層並將它們提供給不同的model實例如下

inp_A = Input(shape=(...))
inp_B = Input(shape=(...))

pred_A = create_model(inp_A)
pred_B = create_model(inp_B)

*** Other layers and code ****
model = Model(inputs=[inp_A, inp_B], outputs=out)
*** Other code ***

然后,您可以調用 model.fit 並傳遞輸入列表和單個 output。

暫無
暫無

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

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