如何在TensorFlow的conv2d中跨越多个通道?

Jan*_*nda 3 python python-3.x conv-neural-network tensorflow

我有一个RGB彩色图像,我正在尝试使用conv2d进行训练。根据CNN,每个滤波器应跨输入的所有通道。但是在TF中遵循此规则时出现错误

InvalidArgumentError: Current implementation does not yet support strides in the batch and depth dimensions.
Run Code Online (Sandbox Code Playgroud)

这一讨论来看,TF在conv2d中似乎仅沿输入通道支持一个增量。所以我的问题是
1.有什么方法可以跨越TF中的多个通道吗?
2.在RGB图像上使用默认跨度(即1)是否正确?

Pan*_*hin 6

在我看来,跨越批处理深度是没有用的。您的步幅应为[1,m,n,1]。

首先,让我们从第一个维度batch开始。这些是您的样本,您的图像。跨过图像将意味着您只是将整个图像从训练或归纳中删除。

第二,深入第四维度。最初,这是您的RGB。跨越RGB意味着您将完全放弃一两种颜色。那没有道理。这将是大量的信息丢失。

第三,大步向前。当图像在要分析的像素级别(而不是颜色级别)上过采样并且只需要扔掉信息就可以时,跨步很有用。这是破坏性的数据破坏。它将高清晰度图像转换为中等清晰度,而将中等清晰度转换为低清晰度。

即使您想对图像进行降采样(跨步),也不想破坏RBG通道(深度)或整个图像(批处理)。