Deep learning 有线电视新闻网中的频道最大化

Deep learning 有线电视新闻网中的频道最大化,deep-learning,keras-layer,max-pooling,Deep Learning,Keras Layer,Max Pooling,我需要减少CNN网络的频道数量。我的输入是一个4D对象(样本、行、列、通道)。通道数为3,我的训练输出只有一个通道。在训练期间,是否有在通道方向上进行最大池的方法 提前感谢您可以按照几个选项进行操作,对通道求和,选择最大通道,制作标准RGB到B&W trasform,等等 所有这些都可以在Lambda层中实现,并具有定义的功能: import keras.backend as K def channelPool(x): return K.sum(x,axis=-1) #or

我需要减少CNN网络的频道数量。我的输入是一个4D对象(样本、行、列、通道)。通道数为3,我的训练输出只有一个通道。在训练期间,是否有在通道方向上进行最大池的方法


提前感谢

您可以按照几个选项进行操作,对通道求和,选择最大通道,制作标准RGB到B&W trasform,等等

所有这些都可以在
Lambda
层中实现,并具有定义的功能:

import keras.backend as K

def channelPool(x):
    return K.sum(x,axis=-1)

    #or
    return K.mean(x,axis=-1)

    #or
    return K.max(x,axis=-1)

    #or 
    return (.21*x[:,:,:,:1]) + (0.72*x[:,:,:,1:2]) + (0.07*x[:,:,:,-1:])
该层将是:

Lambda(channelPool, output_shape=optionalInTensorflow)

PS:如果您使用的是“channels_first”,则轴将为
1
,变换将采用
x[:,channel,:,:]

您可以按照几个选项进行操作,对通道求和,取最大通道,制作标准RGB到B&W变换器,等等

所有这些都可以在
Lambda
层中实现,并具有定义的功能:

import keras.backend as K

def channelPool(x):
    return K.sum(x,axis=-1)

    #or
    return K.mean(x,axis=-1)

    #or
    return K.max(x,axis=-1)

    #or 
    return (.21*x[:,:,:,:1]) + (0.72*x[:,:,:,1:2]) + (0.07*x[:,:,:,-1:])
该层将是:

Lambda(channelPool, output_shape=optionalInTensorflow)

PS:如果您使用的是“channels_first”,则轴将为
1
,变换将采用
x[:,channel,:,:]

到目前为止你都在尝试什么?这听起来像是图像处理领域中典型的分色输入。你想做什么,一个典型的以图像为导向的CNN还没有做到?现有模型没有处理第一个CONV层之后的信道数量;实际上,它们的输入量是原来的3倍。到目前为止你都在尝试什么?这听起来像是图像处理领域中典型的分色输入。你想做什么,一个典型的以图像为导向的CNN还没有做到?现有模型没有处理第一个CONV层之后的信道数量;它们实际上只是输入量的3倍。