input - 改变训练好的卷积神经网络的输入形状是否合理
问题描述
我见过许多超分辨率网络,它们似乎暗示可以在 (x,y,d) 的输入上训练网络,然后将任意大小的图像传递到预测模型中,在 Keras 中example 使用占位符值 (None,None,3) 指定,并且将接受任何大小。
例如https://github.com/krasserm/super-resolution在 24x24x3 的输入上进行训练,但接受任意大小的图像进行调整,演示代码使用 124x118x3。
这是一个理智的做法吗?当给定较大的输入时,网络是否只是在其上滑动一个窗口,并应用与在较小尺寸图像上学到的相同的权重?
解决方案
卷积绝对没有问题,它们将完全按照预期工作,具有相同的权重、相同的内核大小等。
唯一可能的问题是:模型可能没有学习到图像的新比例(因为它以前从未见过这个比例)并且可能会给你带来糟糕的结果。
另一方面,模型可以用多种尺寸/尺度进行训练,对变化变得更加稳健。
Flatten
,Reshape
等会有问题。
仅支持不同的大小GlobalMaxPooling2D
。GlobalAveragePooling2D
推荐阅读
- javascript - Javascript:[Array(2),Array(2)] 与 [["a","b"],["c","d"]] - 有什么区别,为什么它们不相等?
- php - Apache 使用的端口和文档根目录与配置文件中的不同
- php - 请求在 curl 上失败,但在 guzzle 上有效
- powerbi - 平均值除以每个项目的数量
- databricks - Databricks 查看图片
- javascript - 将 Javascript 与 Python 集成;发出帖子请求
- bash - 为什么'ls'递归到文件夹中?
- flutter - Dart:在传递之前将参数存储在变量中
- javascript - 如何使用javascript函数下载本地文件
- r - R - 过滤器给出错误“参数暗示不同的行数:0、1”