2017-10-04 73 views
-1

我需要减少CNN网络中的通道数量。我的输入是一个4D对象(样本,行,列,通道)。通道数量是3,我的训练输出只有一个通道。无论如何,在训练期间在频道方向做最大限度的汇集?CNN中通道的最大流量

在此先感谢

+0

你到现在为止的尝试? – timiTao

+0

这听起来像是图像处理领域中典型的以颜色分隔的输入。你想做什么,典型的面向图像的CNN还没有做到这一点?现有模型不处理第一个CONV层之后的通道数量;他们实际上只有3倍的投入。 – Prune

回答

0

您可以按照几个选项,总结渠道,采取最大通道,做一个标准的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,:,:]