我有一个RGB彩色图像,我试图用conv2d训练。根据CNN,每个滤波器应跨越所有输入通道。但是在TF中遵循这个规则时我得到了一个错误
InvalidArgumentError: Current implementation does not yet support strides in the batch and depth dimensions.
从this讨论来看,TF似乎只支持conv2d中输入通道的一个增量。所以我的问题是 1。有什么方法可以在TF中跨越多个频道吗?
2。使用默认步幅(即1)而不是RGB图像是否正确?
答案 0 :(得分:5)
在我看来,跨越批次或深度是没有用的。你的步伐应该是[1,m,n,1]。
首先,让我们从第一个维度批次开始。这些是您的样本,您的图像。跨过你的图像意味着你只是从训练或归纳中删除整个图像。
第二,深度第四维度。最初这是你的RGB。跨越RGB将意味着您只需完全丢弃一两种颜色。这没有意义。这将是大量的信息丢失。
第三,迈向大步的目的。当您的图像是您正在分析的像素级别(而不是颜色级别)的过采样时,步幅可能很有用,只需抛掷信息就可以了。这是积极的数据破坏。它将高清图像转换为中等清晰度,将中等清晰度转换为低清晰度。即使您想对图像进行缩减采样,您也不想破坏RBG频道(深度)或整个图像(批量)( stride 强>)。