- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读多个相互冲突的 Stackoverflow 帖子,我对现实情况感到非常困惑。
我的问题如下。如果我在 128x128x3
图像上训练 FCN,是否可以提供大小为 256x256x3
或 B)128x128
或 C) 的图像因为训练和测试期间的输入必须相同?
考虑这样post #1 。在这篇文章中,它建议图像在输入和输出期间必须具有相同的尺寸。这对我来说很有意义。
所以post #2 :在这篇文章中,它建议我们可以在测试期间转发不同大小的图像,如果您执行一些奇怪的挤压操作,则这是可能的。完全不确定这怎么可能。
所以post #3 :在这篇文章中,它建议只需要深度相同,而不需要高度和宽度相同。这怎么可能?
据我了解,底线是,如果我在128x128x3
上训练,那么从输入层到第一个转换层,(1)有一个固定的数字所发生的进步。因此,(2) 是固定的特征图大小,相应地,(3) 是固定数量的权重。如果我突然将输入图像大小更改为 512x512x3
,则由于大小差异除非,训练和测试的特征图根本无法进行比较。。 p>
512x512
的图像时,仅考虑顶部 128x128
,而忽略图像的其余部分有人可以澄清一下吗?正如您所看到的,有多个帖子与此相关,但没有规范的答案。因此,每个人都同意的社区辅助答案将非常有帮助。
最佳答案
这是我的分割,
是的,这是做事的标准方式。如果您有可变大小的输入,您可以裁剪/填充/调整它们的大小,以便您的输入大小相同。
请注意,这个人正在谈论“全卷积网络”而不是“全连接网络”。在全卷积网络中,所有层都将是卷积层,只要 channel 尺寸固定,卷积层就不会消耗任意大小(宽度和高度)的输入。
标准卷积网络需要固定输入大小,因为在将卷积输出馈送到全连接层之前进行了“扁平化”。因此,如果去掉全连接层(即全卷积网络),就不会有这个问题。
它所说的内容与第 2 篇文章基本相同(在我看来)。总而言之,如果您的卷积网络具有完全连接的层,并且您尝试输入可变大小的输入,您将得到 RunTimeError
。但是如果你有一个卷积输出并且输入 7x7x512
(h x w x channel )输入您将得到 (1x1x<output_channel>)
输出,如果您输入 8x8x512
输入,你会得到 (2x2x<output_channel>)
输出(由于卷积运算)。
最重要的是,如果您的网络在某处具有完全连接的层,则您无法直接提供可变大小的输入(无需填充/裁剪/调整大小),但如果您的网络是完全卷积的,则可以。
我不知道也无法评论的一件事是概率图何时为 [None, n, n, num_classes]
大小(如帖子 #2 中所示),如何将其变为 [None, 1, 1, num_classes]
因为您需要这样做才能执行 tf.squeeze
.
编辑 1:
我添加此部分是为了阐明当输入大小发生变化时,卷积运算的输入/输出/内核的行为方式。如您所见,输入的更改将更改大小(即高度和宽度尺寸)。但内核(形状为 [height x width x in_channels x out_channels]
在此更改期间不会受到影响。
希望这是有道理的。
关于tensorflow - FCN 训练和测试期间的不同图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349403/
我正在阅读多个相互冲突的 Stackoverflow 帖子,我对现实情况感到非常困惑。 我的问题如下。如果我在 128x128x3 图像上训练 FCN,是否可以提供大小为 256x256x3 或 B)
二叉搜索树的这个删除函数看起来正确吗?当我尝试删除一个节点时,它会运行并带回调用它的切换菜单,但当您重新打印树时实际上并没有删除它。我不确定我是否有不合适的返回,可能吗? 我的问题是:这个删除语句是否
我做了这个简单的函数(从 $array 中删除所有 $elem): function remall($array, $elem) { for($i=0; $i < count($array);
我正在尝试在 tensorflow 上重新实现 FCN。我已经实现了反卷积层。 up8_filter = tf.Variable(tf.truncated_normal([64, 64, 21, 21
我正在尝试从头开始在 MATLAB 中实现一个简单的 FCN。我在网络末端实现了 1 个输入(单 channel 图像)神经元、3 个具有 3 个神经元的隐藏层和一个输出神经元,如下图所示: 我希望这
我想尝试实现一个自动编码器全连接卷积神经网络作为 Unet,将一幅图像转换为另一幅图像,它们之间具有未知的非线性关系。 我有高斯核卷积算法,效果很好,但我想尝试一些机器学习方法。 您对其他 ANN 架
我已经构建了一个用于图像分割的 FCN。相对于图像尺寸(1024x1024),要分割的对象只有很少的像素。这导致准确率非常高,即使我只用 10 张图像而不是 18000 张(我的完整训练集)进行训练。
我一直在审阅来自多个来源的内容,包括我最喜欢的 K&R 第二版。 我一直在研究可变参数函数,我看到的几乎所有教程都在省略号之前使用和 int 来确定传递的变量参数总数。 但是书中的K&R例子没有使用i
我目前正在尝试实现 FCN for semantic segmentation在 TensorFlow 中,就像以前在 Caffe 中所做的那样 here . 不幸的是,我正在为以下三件事而苦苦挣扎:
我已经设置了 Caffe 并使用 FCN-8s 模型,输出类几乎没有变化: layer { name: "score_5classes" type: "Convolution" bottom:
我正在尝试实现一个基本的字符堆栈,以增加我对堆栈的理解。我很困惑为什么我能够正确地压入堆栈,但我无法从堆栈中弹出,我遇到了段错误。 这是我的头文件 #include using namespace
Python map() 的文档部分说明: If function is None, the identity function is assumed; 因此,如果我有这样的 Python 代码: d
我正在尝试为 FCN 实现损失函数。我的输出是形状为 (n, c, h, w) 的张量。我的目标形状为 (h, w)。我想计算输出和张量之间的损失,但问题是我有一个掩模。我只对图像的特定部分计算损失和
我正在寻找一种方法,在给定输入图像和神经网络的情况下,它将为图像中的每个像素(天空、草地、山脉、人、汽车等)输出一个带标签的类别。 我已经设置了 Caffe( future 分支)并成功运行了 FCN
我正在尝试使用 scipy.odrpack 进行曲线拟合,但我在使用 odrpack.ODR 命令时遇到了问题。 这是我写的代码: def f(x,i): return i[0]*numpy.
我通过sendto发送一个UDP数据包,然后通过recv接收应答。如果recv没有收到应答,程序会不继续。但是,udp 数据包可能会丢失,或者由于某种原因,数据包可能无法传递,从而使程序卡在 recv
我已经建立了一个用于图像分割的 Keras 模型(U-Net)。然而,在我的样本中,一些错误分类(区域)并不那么重要,而其他则至关重要,所以我想为它们分配更高的损失函数权重。更复杂的是,我希望一些错误
我想测试 shelhamer 给出的 FCN caffemodel图片: 但我不确定如何运行测试程序并显示带标签的图像。 我考虑的代码如下: import caffe caffe_root = 'fc
我遇到了以下一行作为 C 函数声明。我对传入的第一个参数的类型感到困惑。谁能解释一下如何理解第一个参数的类型? int clone(void (*fcn) (void *) , void *arg,
我设计了一个与FCN相同的网络。输入数据是1*224*224,输入标签是1*224*224。但是我遇到错误: F0502 07:57:30.032742 18127 softmax_loss_lay
我是一名优秀的程序员,十分优秀!