具有不同输入形状的神经网络

时间:2019-04-15 12:45:11

标签: python tensorflow machine-learning deep-learning computer-vision

我目前正在设计用于灰度图像着色的神经网络架构。稍后,它应该能够为具有不同大小和不同纵横比的图像着色。我读到,使用通用CNN不可能做到这一点。我还读到,唯一的选择是将图像缩小到一个特定的大小,或者使用较大的固定大小(例如3000x3000px)并用黑色填充剩余空间。这两个选项似乎都不那么优雅。第一个与我想要的相反,第二个会使神经网络变慢。

然后,我阅读了有关完全卷积网络的信息,该问题将不存在。如果确实有效,那将是很好。我想知道为什么这个特殊的网络可以处理不同的输入形状。也许你可以给我看一些这样的网络的张量流代码。

顺便说一句,我想到了将自动编码器与GAN相结合的架构。

1 个答案:

答案 0 :(得分:0)

根据我的经验,您不能在同一批次中训练任何具有不同样本量的网络。

全卷积网络类似于完全连接的网络,该网络的末尾是完全连接的层。因此,批次中的任何输入图像都必须具有相同的暗度(w,h,d)。

区别在于,完全连接的层为输入批次中的每个样本输出单个输出矢量,而完全卷积网络为每个类别输出概率图。

它的含义远不只是图像大小,当尝试拟合任何数据时,其大小必须是绝对的,并且在训练过程中不能更改。我想您可以按照我说的那样分批处理,但是我从未尝试过。

编码器\解码器可以帮助“重建”特定大小的图像。

同样,该技巧是基于我在对象检测中的经验,我可能是错的:)