在 Keras 中使用连接层进行小批量学习?

Minibatch Learning with Concatenated Layers in Keras?

我有这样一个模型:

img_rows = 32
img_cols = 32
img_channels = 3
img_input = Input(shape=(img_rows, img_cols, img_channels))
layer1 = Conv2D(16, (2, 2), padding='same', activation='relu')(img_input)
layer2 = Conv2D(16, (2, 2), padding='same', activation='relu')(layer1)
layer3 = MaxPooling2D((2, 2), strides=(2, 2), padding='same')(layer2)
layer4 = Flatten()(layer3)

laser_input = Input(shape=(100,))
merge_input = keras.layers.concatenate([layer4, laser_input])

layer5 = Dense(300, activation='relu')(merge_input)
layer6 = Dense(200, activation='relu')(layer5)
layer7 = Dense(100, activation='relu')(layer6)
output = Dense(21, activation='softmax')(layer7)

model = Model(inputs=[img_input, laser_input], outputs=output)

optimizer = optimizers.RMSprop(lr=learningRate, rho=0.9, epsilon=1e-06)
model.compile(loss="mse", optimizer=optimizer)
model.summary()

据我了解,我的模型将两个 numpy 数组的列表作为输入。现在我想像这样在小批量(大小为 64)上训练这个模型:

model.fit(X_batch, Y_batch, batch_size=64, ...)

如何创建 X_batch,Xbatch 的类型是什么? 我认为这是一个列表数组,对吗?

我有一个解决方案。我将 X_batch 分为 X_image_batch 和 X_laser_batch,然后将输入附加到每个子批次。最后 X_batch = [X_image_batch, X_laser_batch].