问题标签 [vgg-net]

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 回答
663 浏览

neural-network - Keras:使用 VGG16 检测特定的非通用项目?

我正在学习使用神经网络和对象检测,使用PythonKeras. 我的目标是检测图像中非常具体的东西,比如说一个非常具体的品牌/类型的汽车化油器(汽车发动机的一部分)。

到目前为止,我发现的教程以猫和狗的检测为例,其中许多使用预训练的 VGG16 网络来提高性能。

如果我只想检测我的特定化油器,而不关心图像中的任何其他内容,那么使用 VGG16 是否有意义。?VGG16 是否仅在您想要检测许多通用项目而不是一个特定项目时有用?

编辑:我只想知道图像中是否有特定的物体(化油器)。无需在其周围定位或放置一个盒子。我有大约 1000 张这种特定化油器的图像供网络训练。

0 投票
1 回答
1415 浏览

machine-learning - 调整CNN输入大小的正确方法(例如VGG)

我想在 128x128 大小的图像上训练 VGG。我不想将它们重新缩放到 224x224 以节省 GPU 内存和训练时间。这样做的正确方法是什么?

0 投票
0 回答
73 浏览

neural-network - 在 CNN - VGG 16 中删除具有 %100 稀疏度的层是否有意义

我正在使用 VGG-16 作为特征提取来训练自动编码器。每当我检查块的稀疏度(参数数量等于零/总参数)时,我注意到块 5(VGG-16 的最深块)具有 %100 的稀疏度。由于它是 VGG 架构中最耗时的块,因此我想尽可能将其删除。

那么,移除 %100 稀疏度的 CNN 层以提高性能是否有意义,因为它们实际上都等于 0?

0 投票
4 回答
14070 浏览

python - 获取 keras 中所有已知的 vgg-16 类的列表

我使用来自 Keras 的预训练 VGG-16 模型。

到目前为止,我的工作源代码是这样的:

我发现该模型接受了 1000 个课程的训练。是否有可能获得该模型所训练的类的列表?打印出所有预测标签不是一种选择,因为只有 5 个返回。

提前致谢

0 投票
1 回答
259 浏览

python - tensorflow训练后,vgg-net返回nan

我将 vgg-19 网络训练为 classfy cifar10,训练一次后,仅一次,vgg-net 返回nan

tf.train.GradientDescentOptimizer用来训练vgg net,活动函数是relu,tf.random_normal初始化权重并tf.nn.xw_plus_b用作全连接层。所以我想知道,为什么 vgg-netnan在训练后返回。

0 投票
1 回答
8455 浏览

tensorflow - 使用 keras 使用预训练的 VGG 实现感知损失

我对 DL 和 Keras 比较陌生。

我正在尝试使用 Keras 中预训练的 VGG16 来实现感知损失,但遇到了一些麻烦。我已经找到了这个问题,但我仍在苦苦挣扎:/

简要说明我的网络应该做什么:

我有一个 CNN(随后称为 mainModel),它获取灰度图像作为输入(#TrainData, 512, 512, 1)并输出相同大小的灰度图像。网络应该减少图像中的伪影——但我认为这对这个问题并不重要。我想实现感知损失,而不是使用例如 MSE 作为损失函数。

我想做什么(我希望我已经正确理解了感知损失的概念):

我想在我的 mainModel 中附加一个 lossModel(带有固定参数的预训练 VGG16)。然后我想将mainModel的输出传递给lossModel。此外,我将标签图像 (Y_train) 传递给 lossModel。进一步,我使用例如 MSE 比较 lossModel 的特定层(例如 block1_conv2)的激活并将其用作损失函数。

到目前为止我做了什么:

加载数据并创建 mainModel:

创建 lossModel,将其附加到 mainModel 并修复参数:

创建包括两个网络的新模型并编译它

通过将标签图像传递给 lossNetwork 来调整它们:

使用感知损失拟合 fullModel:

出现的问题:

  • VGG16 想要获得形状 (?,?, 3 ) 的输入,但我的 mainModel 输出灰度图像 (​​?,?, 1 )

  • 将 lossModel 附加到 mainModel 的一些问题

RuntimeError: Graph disconnected: 无法在“input_2”层获取张量 Tensor("conv2d_2/Relu:0", shape=(?, 512, 512, 3), dtype=float32) 的值。访问以下先前层没有问题:[]

  • 如何计算特定层激活而不是 lossModel 输出的 MSE?

非常感谢您的帮助,并对这个非常长的问题感到抱歉:)

0 投票
1 回答
497 浏览

tensorflow - Tensorflow 为 VGG 模型返回 10% 的验证准确度(与 epoch 数无关)?

我正在尝试使用 tensorflow 中的 keras 包在 CIFAR-10 上训练神经网络。考虑的神经网络是VGG-16,我直接借鉴了官方的keras模型。定义是:

然而,在训练期间,我总是将训练和验证准确率都设为 0.1,即 10%。

作为调试的一步,每当我用任何其他模型(例如,任何简单的 CNN 模型)替换它时,它都能很好地工作。这表明脚本的其余部分运行良好。

例如,以下 CNN 模型运行良好,在 30 个 epoch 后达到 75% 的准确率。

在我看来,这两个模型都是正确定义的。然而,一个工作完美,而另一个根本不学习。我还尝试将 VGG 模型编写为顺序结构,即类似于第二个结构,但它仍然给了我 10% 的准确率。

即使模型没有更新任何权重,“he_normal”初始化器仍然很容易获得比纯机会更好的准确度。似乎 tensorflow 以某种方式计算模型的输出 logits,从而导致准确性纯属偶然。

如果有人能指出我的错误,我将非常有帮助。

0 投票
2 回答
4495 浏览

neural-network - 为什么 VGG-16 的输入大小为 512 * 7 * 7?

根据https://github.com/pytorch/vision/blob/master/torchvision/models/vgg.py

我不明白为什么 VGG 模型需要 512 * 7 * 7 input_size 的全连接层。最后一个卷积层是

  • nn.Conv2d(512, 512, kernel_size=3, padding=1),
  • nn.ReLU(真),
  • nn.MaxPool2d(kernel_size=2, stride=2, dilation=1)

上面链接中的代码。

0 投票
1 回答
542 浏览

python - VGG微调期间的大小不匹配错误

我一直在关注官方 PyTorch 文档(http://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html)中的蚂蚁和蜜蜂迁移学习教程。我试图通过更改最后一层来预测两个类之一来微调 VGG19 模型。我可以使用以下代码修改最后一个 fc 层。

但是在执行 train_model 函数时出现错误。错误是“/opt/conda/conda-bld/pytorch_1513368888240/work/torch/lib/THC/generic/THCTensorMathBlas.cu:243 的大小不匹配”。知道问题是什么吗?

0 投票
0 回答
245 浏览

matlab - 如何使用 VGG-S 以及如何提取输出特征?

在深度学习中有很多卷积神经网络CNN模型。为了尝试 VGG-S 模型,我从这里下载“imagenet-vgg-s.mat”,并通过以下代码尝试从第二个全连接层提取输出特征:

但显示此错误:

所以我从这里的这个链接下载了 prototxt 和它的 caffe 模型“VGG_CNN_S.caffemodel”和“VGG_CNN_S_deploy.prototxt”。我用这段代码试试

但显示此错误:

你能帮我如何使用 VGG-S 以及如何通过它提取输出特征吗?