Я бы объединял только выбранные каналы в кератах, но когда я это делал, это отображалось как ошибка.
Я пытался получить интересующие каналы и использовал функцию объединения для объединения двух выходов.
def cifar10ClassifierTransfer(input_img, conv2_high):
# Add additional inputs to
conv1_1 = (Conv2D(32, (3,3), padding='same', kernel_regularizer=regularizers.l2(weight_decay), input_shape=x_train.shape[1:], activation='elu'))(input_img)
conv1_2 = BatchNormalization()(conv1_1)
conv2_1 = (Conv2D(32, (3,3), padding='same', activation= 'elu',kernel_regularizer=regularizers.l2(weight_decay)))(conv1_2)
conv2_high = conv2_high[:,:,:,[1,2,3]]
concat_layer = keras.layers.merge.Concatenate(axis=3)([conv2_1,conv2_high])
flat = Flatten()(concat_layer)
out = Dense(num_classes, activation='softmax')(flat)
return out
Я ожидал, что количество каналов увеличится.Если я не указываю, какие каналы я хочу объединить, он работает нормально, но когда я выбираю каналы, он выдает следующую ошибку
TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got [1, 2, 3]
Как мы можем выбрать каналы, которые я хочу объединить, а не объединить все?