В моем Keras CNN я добавляю слой Input следующим образом:
model.add(Conv2D(32, (3, 3), input_shape=(img_width, img_height, nb_channel)))
с nb_channel = 3 для входа RGB и = 1 для ввода в оттенках серого, а также flow_from_directory
и ImageDataGenerator
Однако я хочу указать набор цветов для канала для ввода в мою CNN, например, разрешены только зеленые и красные каналы, как я могу это сделать?
Я использую Keras с внутренним тензорным потоком
Помимо аккуратного решения @ Minh-Tuan Nguyen, мы также можем выполнять нарезку следующим образом
#custom filter
def filter_layer(x):
red_x = x[:,:,:,0]
blue_x = x[:,:,:,2]
green_x = x[:,:,:,1]
red_x = tf.expand_dims(red_x, axis=3)
blue_x = tf.expand_dims(blue_x, axis=3)
green_x = tf.expand_dims(green_x, axis=3)
output = tf.concat([red_x, blue_x], axis=3)
return output
#model
input = Input(shape=(img_height, img_width, img_channels))
вшаг concat, мы можем выбрать срез, который мы хотим.