- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用使用 VGG(神经网络)的基于转移式的深度学习方法。后者适用于小尺寸(512x512 像素)的图像,但是当输入图像很大(尺寸 > 1500 像素)时它会提供失真的结果。该方法的作者建议将输入的大图像分成几部分,然后对第 1 部分和第 2 部分进行风格迁移,最后将这两个部分连接起来得到最终的大结果图像,因为 VGG 是为小图像制作的......这种方法的问题在于生成的图像将在“粘合”部分的区域级别具有一些不一致的区域。
我该如何纠正这些区域?
是这种划分方法的替代方法吗?
最佳答案
欢迎来到 SO,让吕克。很好的第一个问题。
当您说 VGG 时,我希望您指的是 VGG-16。该架构最终使用全连接层,这意味着您只能将其用于特定大小的图像。我相信 ImageNet 默认是 224x224 像素。
如果你想不加修改地使用 VGG-16,你必须使用这种尺寸的图像。然而,许多人最终移除了完全连接的层(特别是在风格转移的背景下),以便以他们想要的任何大小进行输入。
任何尺寸?好吧,您可能想要确保图像是 32 的倍数,因为 VGG-16 带有 5 个 MaxPooling 操作,每次都将尺寸减半。
但仅仅因为网络现在可以消化任何大小的图像并不意味着预测将是有意义的。 VGG-16 学习了 1000 个不同对象在 224px 的比例下的样子。使用 1500 像素的猫可能不会激活与猫相关的神经元。那是问题吗?
这取决于您的用例。我不相信 VGG-16 在 ImageNet 的上下文中对这些高分辨率图像进行分类,但这不是您所追求的。您想使用预训练的 VGG-16,因为它应该已经学习了一些在风格迁移中可能会派上用场的能力。无论输入的大小如何,这通常都是正确的。与从头开始相比,几乎总是首选从预训练模型开始。您可能想要考虑为您的任务微调此模型,因为 A) 样式转移与分类完全不同,并且 B) 您使用的是完全不同的图像比例。
由于您遇到的问题完全相同,我从未找到这种推荐的基于补丁的方法来提供帮助。虽然 CNN 学习识别图像中的局部模式,但它们也会学习全局分布,这就是为什么这不能很好地工作的原因。你总是可以尝试使用插值技术合并补丁,但我个人不会浪费时间。
而是像你提到的那样输入完整的图像,在你删除完全连接的层后应该可以工作。规模将关闭,但如果您真的想要高分辨率输入,则无能为力。微调 VGG-16,以便它可以学习适应您手头的用例。
如果您不想进行微调,我认为您无能为力。当您更改分辨率时,使用网络训练的转换/规模或接受低于最佳性能的结果。
关于python - 在 VGG 神经网络中放置和获取大图像的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63829340/
我已经使用 VGG 作为图像分类模型实现了图像字幕。我读过关于 YOLO 是一种快速图像分类和检测模型的文章,它主要用于多目标检测。但是对于图像字幕,我只想要类而不是边界框。 最佳答案 我完全同意 P
你能告诉我每层有多少个神经元吗?我觉得这将增进我对 VGG 正在发生的事情的理解。 让我们在这里使用这段代码只是为了得到一些具体的东西。 https://github.com/machrisaa/te
我的问题是如何将从预训练 Vgg16 模型加载的常量张量转换为 tf.Variable 张量?动机是我需要计算关于 Conv4_3 层内核的特定损失的梯度,但是,内核似乎设置为 tf.Constant
我正在使用使用 VGG(神经网络)的基于转移式的深度学习方法。后者适用于小尺寸(512x512 像素)的图像,但是当输入图像很大(尺寸 > 1500 像素)时它会提供失真的结果。该方法的作者建议将输入
我所做的是: from keras.applications.vgg16 import VGG16 from keras.layers import * from keras.models impor
我想知道是否可以将自定义模型添加到 keras 中的损失函数。例如: def model_loss(y_true, y_pred): inp = Input(shape=(128, 128,
我加载了预训练的 VGG 人脸 CNN 并成功运行。我想从第 3 层和第 8 层提取超列平均值。我正在关注关于从 here 中提取超列的部分。 .但是,由于 get_output 函数不起作用,我不得
我正在使用 Python 3.7.7 和 Tensorflow 2.1.0。 我想创建一个 VGG16 自动编码器网络,向它加载一个权重文件,然后获取它的编码器和解码器。 获取 VGG16 自编码器网
我有一个 VGG19 编码器,它接受 (256,256,3) 的输入图像 y 并返回维度 (32,32, 512) 的张量 来自 vgg 的 conv-4-1 层。我需要将其转换为 numpy 数组以
当使用 torchvision.models 模块加载预训练的 VGG 网络并使用它对任意 RGB 图像进行分类时,网络的输出在每次调用之间明显不同。为什么会这样?根据我的理解,VGG 前向传播的任何
我已关注this加载并运行预训练的 VGG 模型。但是,我试图从隐藏层中提取特征图,并尝试复制“提取任意特征图”部分 here 中的结果。 。我的代码如下: #!/usr/bin/python imp
我正在尝试使用来自 keras 的预训练 VGG 16。但我真的不确定输入范围应该是多少。 快速回答,这些颜色顺序中的哪些? RGB BGR 哪个范围? 0 到 255? 从大约 -125 平衡到大约
我正在使用包含 3k 图像的数据集从头开始训练 VGG-16 模型。 我使用 Tensorflow 平台和 8 个 CPU,没有任何 GPU。 训练率 - 0.01, 重量衰减 - 0.0005, 动
这个问题是对 this answer 评论中讨论的跟进。 . 据我了解,preprocess_input() function 确实意味着输入图像的减法和 std-dev dvision。平均值是在训
刚接触pytorch,想用Vgg做迁移学习。我想删除全连接层并添加一些新的全连接层。我还想使用灰度输入而不是 RGB 输入。为此,我将添加输入层的权重并获得单个权重。所以三个 channel 的权重会
我使用 VGG16 基础创建了一个自定义 Keras 模型,并对其进行训练和保存: from keras.applications import VGG16 from keras import mod
我正在尝试打印所有已知类别及其概率值。第一个值是概率最高的类别。 这是迄今为止我的代码: from keras.applications.vgg16 import VGG16 from keras.p
我试图将具有以下形状的数据拟合到预训练的 keras vgg19 模型中。 图像输入形状为(32383, 96, 96, 3)标签形状为 (32383, 17)我收到了这个错误 expected bl
我正在使用预先训练的 VGG-16 网络将图像转换为特征。我可以按顺序完成这个工作。但是,我想并行执行此操作,但我不确定如何正确构建批处理。 具体来说,假设我加载了 16 个保存在 numpy 数组中
我实际上正在尝试使用 Keras 获得 VGG16 的顺序模型版本。功能版本可以通过以下方式获得: from __future__ import division, print_function im
我是一名优秀的程序员,十分优秀!