在Keras中使用连锁层进行Minibatch学习?

问题描述 投票:0回答:1

我有这样的模型:

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数组的列表作为输入。现在我想在minibatch(大小为64)上训练这个模型,如下所示:

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

如何创建X_batch,以及Xbatch的类型是什么?我认为这是一系列列表,我是否正确?

python keras-layer
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.