问题标签 [convolutional-neural-network]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5059 浏览

python - 如何在 Tensorflow 中使用 conv1d_transpose?

conv1d_transpose尚未在 Tensorflow 的稳定版本中,但在 github 上提供了一个实现

我想创建一个一维反卷积网络。输入的形状是[-1, 256, 16],输出应该是[-1,1024,8]。内核的大小为 5,步幅为 4。

我尝试使用此函数构建一维卷积层:

的形状layer_1TensorShape([Dimension(None), Dimension(None), Dimension(None)]),但应该是[-1,1024,8]

我错了什么?如何在 Tensorflow 中实现一维反卷积?

0 投票
3 回答
4573 浏览

image - jpeg 压缩会影响使用卷积神经网络的训练和分类吗

我们正在与一家拥有超过 200 万张 jpeg 图像的公司合作。他们想收集更多图像。图像的目的是机器分类和寻找螺栓和小漏水等小物体。图像的数量很多,但训练的样本很少,可能只有 100 个样本或更少。

我们对公司的建议是以未压缩的原始 10 或 12 位 png/tiff 格式存储数据。他们想使用 jpeg 格式,因为他们可以在更短的时间内收集更多的数据(每秒 4 张图像)并且不需要所有的磁盘空间。

有谁知道 jpeg 与 png 格式相比的存储将如何影响样本的训练以及以后的查找/分类?

我用谷歌搜索过。它返回了许多关于如何通过使用深度学习来提高 jpeg 质量的答案。其余的答案是关于如何使用互联网上的图书馆处理猫和狗。有一篇文章说 jpeg 压缩会影响识别,但很少涉及什么样的图像,你要寻找什么类型的对象等。

当您寻找像狗和猫这样的大型物体时,您将拥有许多可以使用的特征、曲线、颜色、直方图和其他特征。寻找具有很少特征的非常小的对象更为复杂。

有谁知道关于这个主题的任何文章?关键问题:我应该将图像存储在 png 或无损 tiff 中,还是可以使用 jpeg 压缩以供以后在深度学习中使用?

0 投票
1 回答
76 浏览

tensorflow - 如何在 MobileNet 中查看卷积层的输入和输出的确切值

我正在尝试可视化 MobileNet 中卷积层的输入和输出。TensorFlow 中是否有任何功能或工具可以让我们查看每一层的输入和输出的确切值?所以假设我有一张图像,我正在做物体检测。模型跑了一堆层,怎么看数据流?

0 投票
1 回答
104 浏览

python - 使用 ExponentialMovingAverage 的 tensorflow CNN 教程代码中的潜在错误?

我正在研究使用 cifar10 数据集训练 CNN 的 tensorflow 卷积神经网络教程的代码。源代码位于Gihub中,文档位于Document中。

我的问题是关于第375-378 行中ExponentialMovingAverage( doc here )的使用。cifar10.py这是

在这里,这variables_averages_op是一个更新所有阴影变量apply_gradient_op的操作,并且是将计算梯度应用于所有原始变量的操作(它更新原始变量,也就是模型权重)。

由于control_dependencies不保证其传递参数的执行顺序,因此在本例中apply_gradient_op和的执行顺序variables_averages_op是任意的,这进一步表明,在运行 时train_op,我们最终可能会首先更新原始变量,然后更新对应的影子变量,或在原始变量之前更新影子变量。后一种对我来说似乎不合理。

根据ExponentialMovingAverage(上面的链接)的官方文档,阴影变量的更新依赖于原始变量:

shadow_variable = decay * shadow_variable + (1 - decay) * variable

原始变量的更新应该在影子变量的更新之前,教程代码中不是这种情况。

谁能帮我清除一下?谢谢。

0 投票
3 回答
1850 浏览

python - 检查输入时出错:预期 input_19 有 4 个维度,但得到了形状为 (1190、200、200) 的数组

我是 CNN 的新手,我无法确定如何解决这个问题。在这段代码中,我正在训练一组图像以从卷积网络中获取掩码。图像是灰度的,形状为 (200,200)。我无法确定我在哪里犯了错误。此外,每次我运行我的代码时,不同的输入都会出现错误。任何帮助将不胜感激。

以下是生成的日志:

这是我的代码:

0 投票
1 回答
96 浏览

python-3.x - 使用卷积神经网络在具有 4 个通道的图像的数字识别数据集上的精度非常低

我目前正在处理Analytics Vidhya的数字识别挑战,其链接是https://datahack.analyticsvidhya.com/contest/practice-problem-identify-the-digits/。与此挑战相关的数据集中的图像尺寸为28*28*4(28 = 长度 = 宽度,4 = 通道数)。我实现的代码是:

续代码:

输出如下:(从第16 个纪元到第 37 个纪元)

可以看出,训练和验证准确度都非常低。

我曾尝试减少 Dropout(以前其中一层为 0.5),但仍然没有效果。我将最后一个隐藏层中的神经元加倍,(以前是 100 个),仍然没有效果。看起来,这与图像的预处理以及图像的输入参数有关。可以做什么?

0 投票
1 回答
31 浏览

python - 如何将两个训练有素的 incpton_v3 模型与不同数量的类合并以实现多个输出?

例子:

  1. inceptionv3_model1有 10 类(香蕉、橙子、葡萄......)
  2. inceptionv3_model2有 3 个类(过期,笔记过期,正常)

我需要合并这两个模型以获得多个输出结果。例如过期香蕉或普通香蕉...

0 投票
1 回答
640 浏览

tensorflow - 如何在视频流中只计算一次对象?(张量流,CNN)

所以我遇到了一个小问题。假设我有一段人们过马路的视频 - 在这个例子中,假设相机看起来垂直于人们走过的方式(他们相对于相机直接水平行走)。

现在,从这段录像中,我想计算过马路的人数。

视频流由 20FPS 素材组成,我的问题是我的 AI 模型评估的每一帧都会返回 X 数量的人每帧(不是我真正感兴趣的)。

所以问题是,我如何评估通过一系列帧的对象,而不是评估对象在任何一个特定帧中的存在?

我认为的一种可能方法是,当对一个人进行新的预测(比如高于 90% 阈值)时,为其分配一些唯一标识并尝试在帧之间携带该唯一标识符......

好像有更简单的方法,有人知道吗?

0 投票
1 回答
1844 浏览

tensorflow - 热图对象检测

我正在使用 tensorflow 对象检测 api ( https://github.com/tensorflow/models/tree/master/research/object_detection ) 使用 Single Shot Multibox 检测器 (SSD) 训练 CNN,然后检测图像/视频中的对象. 有什么方法可以在网络中实现热图以提高模型的准确性?如果没有,你能建议我改进模型的其他方法吗?

提前致谢

0 投票
0 回答
231 浏览

tensorflow - 如何制作具有 3x3 像素输入和 2x2 像素输出的“卷积”内核?

我正在解决一个玩具问题,试图使用 keras 模型将图像的分辨率提高 2 倍。使用 keras 实现此目的的基本操作是 Conv2DTranspose。使用功能模型 API,我将每个像素分成四个:

生成的转置卷积是 (1*1*3)*(2*2*3) = 36 参数操作,它给了我想要的输出分辨率。

我想做的是将输入图像中的相邻像素包含在卷积核中。对于输入上的每个像素,我想包括每个相邻像素,或 3x3 像素;输出将是相同的(2x2 像素,步幅为 2)。这个内核将有 (3*3*3)*(2*2*3) = 324 个参数。

我无法找到有关如何执行此操作的任何信息。有任何想法吗?

现在我正在使用两层解决方法:

  1. 具有 3x3 内核和步长 1(以及零填充以节省像素数)的 Conv2D 层,具有 9 个过滤器;

  2. 我像以前一样将我的 Conv2DTranspose 层应用于输出。

这捕获了所需的信息,其想法是它沿过滤器维度对位置信息进行编码,总参数计数为 351,因此它应该具有足够的自由度来近似相同的效果。

我也可以尝试在中间层使用 27 个过滤器,这有点像将 3x3x3 像素信息“扁平化”为一个“像素”。唯一的缺点是这会导致总共 1,053 个参数;比以前多得多。好处是它让我有机会在这个编码步骤中引入非线性;也许模型可以从这些额外的参数中受益。