繁体   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