问题标签 [caffe]

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

computer-vision - Caffe LENET 或 Imagenet 模型中的参数数量

如何计算模型中的参数数量,例如用于 mnist 的 LENET,或用于 imagent 模型的 ConvNet 等。caffe 中是否有任何特定函数可以返回或保存模型中的参数数量。问候

0 投票
1 回答
2848 浏览

linux - caffe 重新编译 libgflags.a 并出现 -fPIC 错误

当我尝试在 Linux Ubuntu 64 上安装 Caffe 时出现错误。错误如下:

/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): 重定位 R_X86_64_32S 反对 `.rodata' 在制作共享对象时不能使用;使用 -fPIC
/usr/local/lib/libgflags.a 重新编译:添加符号时出错:值错误

我尝试用 重新编译 gflags 库-fPIC,但错误变为如下:

src/caffe/common.cpp: 在函数'void caffe::GlobalInit(int*, char***)':
src/caffe/common.cpp:35:5: 错误: '::gflags' 没有被声明
::gflags::ParseCommandLineFlags(pargc, pargv, true);

我还尝试将 caffe 的 CMakeCache.txt 更改为设置-fPIC,但也不起作用。

0 投票
3 回答
8714 浏览

c++ - Caffe 编译错误:gflags.cc' 被静态和动态链接到这个可执行文件中

我正在尝试按照本教程安装 caffe

基本上我在输入最后一个 make 命令时出现以下错误:

我不明白如何解决这个错误。以前有人发现这个错误吗?我该如何解决?

0 投票
2 回答
9054 浏览

c++ - 解决类别不平衡:对损失和 sgd 的贡献比例缩放

(已添加对此问题的更新。)

我是比利时根特大学的研究生;我的研究是关于深度卷积神经网络的情绪识别。我正在使用Caffe框架来实现 CNN。

最近我遇到了一个关于班级不平衡的问题。我正在使用大约 9216 个训练样本。5% 标记为阳性 (1),其余样本标记为阴性 (0)。

我正在使用SigmoidCrossEntropyLoss层来计算损失。训练时,即使经过几个 epoch,损失也会减少,准确率非常高。这是由于不平衡造成的:网络总是简单地预测负数(0)。(精确度和召回率都为零,支持这一说法)

为了解决这个问题,我想根据预测真相组合来衡量对损失的贡献(严厉惩罚假阴性)。我的导师/教练还建议我在通过随机梯度下降 (sgd)反向传播时使用比例因子:该因子与批次中的不平衡相关。仅包含负样本的批次根本不会更新权重。

我只向 Caffe 添加了一个定制层:报告其他指标,例如精度和召回率。我在 Caffe 代码方面的经验有限,但我在编写 C++ 代码方面拥有丰富的专业知识。


任何人都可以帮助我或指出正确的方向如何调整SigmoidCrossEntropyLossSigmoid层以适应以下变化:

  1. 根据预测-真值组合(真阳性、假阳性、真阴性、假阴性)调整样本对总损失的贡献。
  2. 根据批次中的不平衡(负数与正数)缩放随机梯度下降执行的权重更新。

提前致谢!


更新

我已按照Shai的建议合并了InfogainLossLayer。我还添加了另一个自定义层,它H根据当前批次中的不平衡构建信息增益矩阵。

目前,矩阵配置如下:

我计划在未来尝试不同的矩阵配置。

我已经在 10:1 的不平衡情况下对此进行了测试。结果表明,网络现在正在学习有用的东西:(30 epochs 后的结果)

  • 准确度约为。~70%(低于 ~97%);
  • 精度约为。~20%(从 0% 上调);
  • 召回是大约。~60%(从 0% 上调)。

这些数字是在大约 20 个 epoch 时达到的,之后没有显着变化。

!!上述结果只是一个概念证明,它们是通过在 10:1 不平衡数据集上训练一个简单的网络获得的。!!

0 投票
2 回答
3840 浏览

caffe - Caffe 无法在 ubuntu 15.04 上构建

遵循Caffe 构建说明后,我收到以下错误

hdf5: libhdf5-dev用 apt-get 检查安装:

cuda7 已安装,opencv 3 ...

0 投票
1 回答
2104 浏览

machine-learning - 求解器参数“test_iter”在测试阶段更改标签值

我正在使用Caffe框架来构建和研究卷积神经网络。

我偶然发现(我相信是)一个错误。(我已经在Github上报告过了。)

这就是问题所在:在测试阶段,标签值会根据test_iter参数的值(在求解器.prototxt文件中定义)而改变。


我正在使用 10240 张图像来训练和测试网络。每个图像有 38 个标签,每个标签可以有两个(0 或 1)值。我正在使用 HDF5 文件格式将图像数据和标签导入 Caffe;每个文件存储 1024 张图像及其各自的标签。(我检查了 HDF5 文件,那里的一切都是正确的。)

我使用 9216(= 9 个文件)图像进行训练,使用 1024(= 1 个文件)进行测试。我的 Nvidia 540M 显卡只有 1GB 内存,这意味着我必须批量处理(通常每批 32 或 64 张图像)。

我正在使用以下网络来复制问题:

该网络仅输出所有标签值。我正在为此网络使用以下求解器:(主要从我的真实网络复制。)

batch_size通过改变和test_iter参数获得以下结果。根据教程,batch_size测试数据和test_iter求解器中的数据应该平衡,以确保在测试期间使用所有测试样本。就我而言,我会确保batch_size * test_iter = 1024.

这些是我更改值时的结果
batch_size = 1024, test_iter = 1::一切都很好。
batch_size = 512, test_iter = 2:“1”的标签更改为“0.50”。
batch_size = 256, test_iter = 4:“1”的标签更改为“0.50”或“0.25”
batch_size = 128, test_iter = 8:“1”的标签更改为“0.50”或“0.25”或“0.125”
[...]:模式继续。


发生了什么会在测试期间影响标签的值?我只是解释了使用batch_sizetest_iter错误,还是我错过了其他东西?

0 投票
1 回答
3552 浏览

matlab - 将数据转换为 caffe 的 leveldb

我在 Matlab 中有一堆二维数据矩阵(没有图像数据,但有一些单精度数据)。

有谁知道如何将 2D matlab 矩阵转换为 caffe 训练自定义神经网络所需的 leveldb 格式?

我已经完成了关于如何训练图像(使用 imagenet 架构)和 mnist(数字识别数据集)的教程。但是在后一个示例中,他们没有展示如何创建相应的数据库。在教程中已经提供了数据库。

0 投票
2 回答
571 浏览

c++ - Caffe 中的 Armadillo 用于伪逆和转置

我需要伪逆和转置函数来在 caffe 中实现一个图层。所以我正在使用 Armadillo 库来做到这一点。但是如何将 Caffe Blobs(2-D) 转换为犰狳垫,反之亦然?

0 投票
2 回答
1048 浏览

caffe - Caffe 层注册错误

我是 Caffe 新手,运行 Caffe mnist 示例时遇到问题。错误信息如下:

我已经搜索了解决方案并尝试按照本文中的建议链接动态库。但是它不起作用。我可以看到已知层是空的。可能是什么原因?请帮帮我。谢谢。我正在使用 Ubuntu 15.04。

0 投票
1 回答
1082 浏览

python - 无法将caffe导入python,找不到libjpeg.so.62

我无法将 caffe 导入(anaconda-)python。我正在关注关于“非图像 HDF5 数据的逻辑回归”的笔记本示例。当我执行该行时

我收到以下错误:

该库libjpeg.so.62明确安装在/usr/lib/i386-linux-gnu/libjpeg.so.62. 我不知道这里出了什么问题,也不知道如何告诉 anacondapython 在哪里寻找libjpeg.so.62.

我已经尝试过了,sudo apt-get install libjpeg62:i386但 apt-get 说"libjpeg62:i386 is already the newest version. libjpeg62:i386 set to manually installed."

我在修改“Makefile.config”时编译了 caffe,使其指向 ananconda python 路径。我还导出了我的 anaconda 目录的 PYTHONPATH 和 PATH: