问题标签 [conv-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.
python - Theano - 共享变量作为大型数据集的函数输入
我是 Theano 的新手……如果这很明显,我深表歉意。
我正在尝试根据LeNet 教程训练 CNN 。与本教程的一个主要区别是我的数据集太大而无法放入内存,因此我必须在训练期间加载每个批次。
原来的模型是这样的:
...这对我不起作用,因为它假设它train_set_x
完全加载在内存中。
所以我切换到这个:
并试图用以下方式调用它:
但得到:
TypeError: ('Bad input argument to theano function with name ":103" at index 0(0-based)', '期望一个类似数组的对象,但找到了一个变量:也许你正试图在一个 (可能共享)变量而不是数字数组?')
所以我想我不能使用共享变量作为 Theano 函数的输入。但是,我应该如何进行……?
deep-learning - 使用 CaffeNet 模型以中等帧率检测行人
我训练 CaffeNet(更准确地说是用于两类分类的 Cifar10 模型)模型。现在模型已准备好进行检测。对于使用单个图像的模型测试,我使用test_predict_imagenet.cpp
. 我还没有测试代码对于 640 x 480 图像的运行速度有多快。我的目标是我喜欢 5~10 帧/秒对于离线检测来说很好。我知道我需要实现多尺寸检测(即,就像我们在人脸检测中所做的那样,原始图像尺寸会针对不同的较小尺寸重新调整大小),这样我就不会错过每一帧中的行人。
根据这篇论文,他们在训练中使用 64 x 128 的图像大小,检测需要 3 毫秒/窗口,对于 100 个窗口/图像,需要 300 毫秒/帧。不确定他们是否实施多尺寸检测方法。如果实现多尺寸,则需要更长的时间。
目前,我只了解test_predict_imagenet.cpp
多尺寸检测的实现方法。我知道它会很慢。有没有更有效的检测方法使用 CaffeNet 模型?我的目标非常适合 5~10 帧/秒的速率。谢谢
deep-learning - 测试 Caffe 的 Alexnet caffe 模型时出错
我训练了 caffe 的 Alexnet 模型以使用更有效的模型进行测试。因为我的训练是针对行人的,所以我的图像尺寸是 64 x 80 图像。我对 prototxt 文件进行了更改以匹配我训练过的图像大小。根据本教程,最好设置卷积滤波器大小以匹配输入图像大小。所以我的过滤器大小与原始 Alexnet 提供的 prototxt 文件略有不同(我使用 Alexnet 的原始 prototxt 文件进行训练和测试,并在下面提到的同一行得到相同的错误)。
根据我的计算,通过每一层后的图像大小将是
80x64x3 -> Conv1 -> 38x30x96
38x30x96 -> Pools -> 18x14x96
18x14x96 -> Conv2 -> 19x15x256
19x15x256 -> Pool2 -> 9x7x256
9x7x256 -> Conv3 -> 9x7x384
9x7x384 -> Conv4 -> 9x7x384
9x7x384 -> Conv5 -> 9x7x256
9x7x256 -> 池 5 -> 4x3x256
错误出现在 fc6 层和test_predict_imagenet.cpp
. 我使用test_predict_imagenet.cpp
文件来测试模型。
错误是
我不明白为什么会这样。
我的两个 prototxt 文件如下所示。
这是模型的测试文件。
这个错误有什么问题?
caffe - 用于训练具有较小图像尺寸的 Alexnet 的参数微调
Alexnet 旨在使用 227x227x3 图像大小。如果我喜欢训练像 32x80x3 这样更小的图像尺寸,需要微调的参数是什么。
我最初使用 64x80x3 的图像尺寸进行训练,除了第一个 Conv1 层中的步幅外,所有参数都与提供的相同,它改为 2。我达到了非常高的测试精度,高达 0.999。然后在实际使用中,我的检测准确度也相当高。
然后我更喜欢使用较小的图像尺寸 32x80x3。我使用了与在 64x80x3 图像大小中训练的参数相同的参数,但准确度低至 0.9671。我尝试将 Conv1 层的过滤器大小等参数微调为 5。高斯权重过滤器的标准大小为 10 倍和 100 倍小。但它们都不能帮助达到训练 64x80x3 图像所达到的精度。
对于要训练的较小图像尺寸,需要微调哪些参数以达到更高的精度?我使用了 24000 个数据集。20000 用于训练,4000 用于测试。
对于 32x80x3 和 64x80x3,我使用相同的图像,只是图像尺寸被编辑为 32x80 和 64x80。
machine-learning - 用于情感分析的卷积神经网络
我试图修改 YoonKim 的代码以使用 CNN 进行情绪分析。他应用了三个过滤heights=[3,4,5]
器width=300
Conv,Pool
第一次计算后我被卡住了。考虑
64 是每个句子向量的长度,300 是词嵌入大小。
在他的实现中,他首先应用了一个 height=3 和 width=300 的内核。因此输出将是
之后他使用poolsize=(62, 1)
. MaxPooling 后的输出变为
这就是我卡住的地方。在论文中,他应用了 3 个 和 的过滤heights[3,4,5]
器width=300
。但是在应用第一个过滤器后,卷积就没有输入了。我如何(以及在什么上)应用第二个内核?
任何帮助或建议都会很棒。git 页面包含指向论文的链接。
neural-network - 如何在 caffe 中将 convert_imageset 用于未放在一个文件夹中的图像?
我正在尝试使用 Caffe 框架在我自己的数据集上训练 CNN,由于速度效率,强烈建议将数据集转换为 lmdb 或 leveldb 格式。为此,必须将所有图像放入一个文件夹中,并且'list.txt'
必须进行相应的准备。我自己的数据集非常庞大,并且在如此多的文件夹和子文件夹中,因此将它们全部复制到一个文件夹中会非常费力。因此,我想知道是否存在任何替代方法来生成 lmdb 文件,而无需将所有图像复制到单个文件夹中。
machine-learning - 什么是卷积神经网络的深度?
我正在查看来自CS231n Convolutional Neural Networks for Visual Recognition的 Convolutional Neural Network 。在卷积神经网络中,神经元以 3 维(· height
、 · width
、 · depth
)排列。我遇到depth
了 CNN 的问题。我无法想象它是什么。
他们在链接中说The CONV layer's parameters consist of a set of learnable filters. Every filter is small spatially (along width and height), but extends through the full depth of the input volume
。
我可以理解我们从图像中取出一小块区域,然后将其与“过滤器”进行比较。那么过滤器将是小图像的集合吗?他们还说We will connect each neuron to only a local region of the input volume. The spatial extent of this connectivity is a hyperparameter called the receptive field of the neuron.
,感受野是否与过滤器具有相同的维度?还有这里的深度是多少?我们使用 CNN 的深度来表示什么?
所以,我的问题主要是,如果我拍摄一张尺寸为的图像[32*32*3]
(假设我有 50000 张这些图像,制作数据集[50000*32*32*3]
),我应该选择什么作为它的深度以及深度意味着什么。还有过滤器的尺寸是多少?
如果任何人都可以提供一些对此给出一些直觉的链接,那也会很有帮助。
编辑:所以在教程的一部分(真实世界示例部分)中,它说The Krizhevsky et al. architecture that won the ImageNet challenge in 2012 accepted images of size [227x227x3]. On the first Convolutional Layer, it used neurons with receptive field size F=11, stride S=4 and no zero padding P=0. Since (227 - 11)/4 + 1 = 55, and since the Conv layer had a depth of K=96, the Conv layer output volume had size [55x55x96].
在这里我们看到深度是 96。那么深度是我任意选择的吗?还是我计算的东西?同样在上面的示例中(Krizhevsky 等人),它们有 96 个深度。那么它的 96 个深度是什么意思呢?教程也说明了Every filter is small spatially (along width and height), but extends through the full depth of the input volume
。
python - 如何在 SVM 中使用特征之前对特征使用 L2 归一化
我正在使用从卷积神经网络中提取的特征训练 SVM。正如本文 ( http://arxiv.org/pdf/1405.3531v4.pdf ) 中所写,最好在对特征应用 SVM 之前对其进行 L2 标准化。
我使用这个函数来规范化向量:
在这个标准化之后,我的准确率从大约 60% 下降到 20%,所以显然有些地方是错误的。我应该如何为具有 L2 范数的 SVM 正确准备我的向量?
neural-network - P 字母在神经网络层方案中是什么意思?
在关于 MNIST 数据库的 Wikipedia 文章中,据说该方案的“35 个卷积网络委员会”的错误率最低:
1-20-P-40-P-150-10
这个方案是什么意思?
数字可能是神经元数。但是什么1
意思呢?
P
字母是什么意思?