繁体   English   中英

Keras:将图像输入 CNN 并获得图像输出

[英]Keras: feed images into CNN and get image output

到目前为止,我一直在 Pandas 的数值数据集上练习神经网络,但现在我需要创建一个模型,将图像作为输入并输出该图像的二进制掩码。

我的训练数据是形状为 numpy 的数组 (602, 2048, 2048, 1)。 602 张尺寸为 2048x2048 的图像,带有一个通道。 输出掩码数组具有相同的维度。

我想不通的是如何定义第一层或如何正确地将数据输入模型。 我将非常感谢您在此问题上的帮助

嗯,这不是一个“规则”,但可能您将主要使用 2D conv 和相关层。

像往常一样,您将所有内容作为 numpy 数组提供,也许可以规范化这些值。 常见的选项有:

  • 在 0 和 1 之间(只需除以 255。)
  • -1 和 1 之间(除以 255,乘以 2,减 1)
  • Caffe 风格:从每个通道中减去一个特定值,以根据其通常的平均值“居中”这些值,而无需重新调整它们。

您的模型应该从以下内容开始:

inputTensor = Input((2048,2048,1))
output = Conv2D(filters, kernel_size, .....)(inputTensor)    

或者,在顺序模型中: model.add(Conv2D(...., input_shape=(2048,2048,1))

稍后,由您决定使用哪些层。

  • Conv2D
  • 最大池化2D
  • 上采样二维

无论您是要创建线性模型,还是要划分分支、加入分支等,这也是您的决定。

U-Net风格的模型对您来说应该是一个好的开始。

不能做什么

  • 不要使用 Flatten 图层(实际上你可以,如果你稍后重新调整输出以获得图像尺寸......但为什么呢?)
  • 不要使用全局池化层(你不想牺牲你的空间维度)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM