问题标签 [caffe2]
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.
caffe2 - Caffe2:如何在 C++ 中加载和使用 MNIST 教程模型
我正在努力复制训练有素的 MNIST caffe2 教程模型的 C++ 结果。我所做的是我稍微修改了 MNIST python 教程(代码可在此处获得)并且在 python 端一切正常。
如果我运行 mnist.py,我会得到两个带有网络定义和初始化的“.pb”文件。如果我在 python 端加载这个网络并用数据库中的一些图像提供它,那么我将得到正确的预测:
所以很确定测试图像是“7”(而且它是正确的)。
但我无法从 C++ 获得相同的结果。我已经查看了它在其他项目中是如何完成的(这里和这里)并提出了以下内容:
C++网络初始化
此初始化运行没有问题。由于部署网络没有缩放和转换为浮动,我必须这样做(与上面的 python 片段相同),我这样做如下:
最后我提供了预测器:
我在同一个文件上得到的结果是“7”为 17%(不是 99.9%),其余类别约为 5-10%。
现在我被卡住了,我不知道问题出在哪里,所以我很感激任何提示/提示/指针。
c++ - 使用 Xcode 和 CMake 构建 CUDA 库失败
我正在尝试使用 CMake 生成一个 Xcode 项目并用它构建一个 CUDA 库。我用于收集和构建CUDA库“caffe2_cpp_gpu”的代码如下:
请注意,如果使用 Unix Makefile,则可以运行此代码。但如果使用 Xcode 则无法运行。
在项目中它显示一个文件丢失:
缺少文件
并且无法创建 CUDA 库“caffe2_cpp_gpu”。
有谁知道如何解决它?
c++ - 如何在使用 GPU (C++) 时更改 Caffe2 中的 blob 值
我正在尝试手动访问 blob 值并对其进行更改。
我有一个名为“1conv1_w”的 blob,我通过以下方式访问它:
这将返回一个指向float*
1conv1_w 的指针。在 CPU 模式下,我可以使用
访问 Blob "1conv1_w" 中的第一个值以及修改该值。但是,当进入 GPU 模式时,这将返回错误,因为指针中没有值。如果我使用
然后我可以访问第一个值,但仍然无法访问 blob 中的其他值。
我猜这个问题是因为在使用 GPU 时,内存实际上是一个临时内存。该值在 CPU 和 GPU 之间复制(可能是 memcpy)。当我使用Get<caffe2::TensorCUDA>()
它时,只需将我想要的地址或值复制给我。因此,即使我更改了此地址中的值,它也不会影响保存在某处的实际值。
有没有人面临同样的问题并且知道如何更改 blob 的实际值?
java - 在 Java 中加载 ONNX 模型
我有一个训练有素的 PyTorch 模型,现在我想使用 ONNX 将其导出到 Caffe2。这部分看起来相当简单且有据可查。但是,我现在想将该模型“加载”到 Java 程序中,以便在我的程序(Flink 流应用程序)中执行预测。做这个的最好方式是什么?我无法在网站上找到任何描述如何执行此操作的文档。
machine-learning - 使用 brew 添加新的辅助方法会引发错误
我尝试使用 brew 添加一个新的辅助函数,如下所示。
当我尝试运行上述代码时,出现以下错误:
AttributeError: Helper testOp 已经存在。请更改您的助手名称。
请帮我解决这个错误。
注意: testOp
在同一个文件中定义。
android - caffe2 build android 配置测试项目构建系统失败
我想在 macOS 上构建 caffe2。
build caffe2 一切正常,但是当我 build android 时,使用caffe2/scripts/build_android.sh
处理是到 100% 然后发生:
我的 cmake 版本是:
所有日志是:
我找到了第一个错误,但在我的 mac 中file STRINGS file
"/Users/zhouhuacong/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/android/api-level.h"
cannot be read.
找不到该文件夹。include
只有/Users/zhouhuacong/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib
文件夹。
这是我的 NDK 环境问题吗?我用的Android Studio 3.0
,然后下载NDK 16
。
我哪里错了?
python - 在 Anaconda 虚拟环境中,“conda install package_name”、“pip install package_name”有什么区别?
我的linux中默认的PyThon环境是:Python 3.6.2 :: Anaconda custom (64-bit)
,我创建了虚拟环境:Python 2.7.14 :: Anaconda custom (64-bit)
首先,我进入 Aanconda 虚拟环境:source activate python27
然后,我安装了caffe2,出现错误:ImportError:No module named google.protobuf.internal
所以,我用conda安装protobuf:,conda install protobuf
但是错误依旧存在。我用pip install protobuf
的时候,错误消失了。
有什么不同:
是pip install package_name
一样的/opt/anaconda3/envs/python27/bin/pip install package_name
吗?当 I 时which pip
,它显示:/opt/anaconda3/envs/python27/bin/pip
谢谢!
deep-learning - mask r-cnn的AP、AP50、AP70是什么意思?
我是 r-cnn 的新手。
mask r-cnn paper上有术语AP、AP50、AP75。50, 75 是小后缀,但我不能让它变小,对不起。无论如何,论文说它是 IOU 阈值的平均值。对于 AP50,仅计算超过 50% 区域比较地面实况的候选者,而对于 AP75,仅计算超过 75% 的候选者。那么什么是空AP呢?我知道 AP 使用 70% IoU 阈值,但它不会。因为只是AP低于AP75。
此外,还有一些我不太理解的术语。他们是 AP,m,L。我知道他们的意思是小,中,大。那么有什么标准它们有多大。只是说小,中,大让我有点困惑。
提前致谢!