问题标签 [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.

0 投票
2 回答
1426 浏览

windows - 如何在 Windows 7 上安装 Caffe2?

Facebook 最近发布了caffe2——深度学习库。

如何在Windows 7系统上安装?

0 投票
1 回答
71 浏览

templates - Caffe2 InputIsType 方法中模板语句的解释

Caffe2 框架在文件中包含以下代码caffe2/core/operator.h

我不明白这段代码片段的第三行:为什么template这里使用语句?据我所知,template总是跟在后面<>并用来定义一个 type T,就像这个代码片段的第一行一样。

为什么我们需要template在调用之前写IsType<T>()

0 投票
1 回答
2872 浏览

python - ubuntu 16.04如何知道Caffe2是否安装成功?

我正在尝试按照说明在https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile上安装 caffe2 ,但是当我尝试运行命令时

它回显失败。当我运行下一个命令时

它给出的输出为 - Error while finding module specification for 'caffe2.python.operator_test.relu_op_test' (ModuleNotFoundError: No module named 'caffe2.python')

虽然我已成功运行其他命令,但谁能指出我犯的错误。我怎么知道我是否已经成功安装了 caffe2 ?(除了上面的命令)

0 投票
1 回答
4476 浏览

caffe2 - CMakeFiles/Makefile2:1429:目标“caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/all”的配方失败

当我安装了 caffe2 安装页面中列出的所有先决条件后,我输入命令make && cd build && sudo make installcompile caffe2,然后我收到以下错误,第一部分是使用Cmake.

cama@cama:/home/chaoyang/caffe2-master/build$ cmake .. -- CXX 编译器标识为 GNU 4.9.3 -- C 编译器标识为 GNU 4.9.3 -- 检查工作 CXX 编译器:/usr /bin/c++ -- 检查工作的 CXX 编译器:/usr/bin/c++ -- 工作 -- 检测 CXX 编译器 ABI 信息 -- 检测 CXX 编译器 ABI 信息 - 完成 -- 检测 CXX 编译特性 -- 检测 CXX 编译特性 - done -- 检查工作 C 编译器:/usr/bin/cc -- 检查工作 C 编译器:/usr/bin/cc -- 工作 -- 检测 C 编译器 ABI 信息 -- 检测 C 编译器 ABI 信息 - 完成 --检测 C 编译功能 - 检测 C 编译功能 - 完成 - 未设置构建类型 - 默认为发布 - 寻找 pthread.h - 寻找 pthread。h - 找到 - 寻找 pthread_create - 寻找 pthread_create - 未找到 - 在 pthreads 中寻找 pthread_create - 在 pthreads 中寻找 pthread_create - 未找到 - 在 pthread 中寻找 pthread_create - 在 pthread 中寻找 pthread_create - 找到 - - 找到的主题:TRUE
-- 找到 Protobuf:/usr/lib/x86_64-linux-gnu/libprotobuf.so
-- 选择的 BLAS 后端:Eigen -- 找不到 NNPACK(缺少:NNPACK_INCLUDE_DIR NNPACK_LIBRARY) -- 将尝试从源代码构建 NNPACK。如果有任何失败,请按照 NNPACK 先决条件安装步骤进行操作。cmake/External/nnpack.cmake:157 处的 CMake 警告(消息):选择安装 NNPACK,但未安装所需的 confu 和 ninja。因此,我们不会使用 NNPACK 构建。调用堆栈(最近的调用优先):cmake/Dependencies.cmake:52(包括) CMakeLists.txt:72(包括)

cmake/Dependencies.cmake:57 处的 CMake 警告(消息):未使用 NNPACK 编译。使用 -DUSE_NNPACK=OFF 调用堆栈(最近调用优先)抑制此警告:CMakeLists.txt:72(包括)

-- 找到 GFlags:/usr/include
-- 找到 gflags(包括:/usr/include,库:/usr/lib/x86_64-linux-gnu/libgflags.so) -- 找到系统 gflags 安装。-- 找到 Glog:/usr/include
-- 找到 glog(包括:/usr/include,库:/usr/lib/x86_64-linux-gnu/libglog.so) -- 找到系统 glog 安装。-- 找到 PythonInterp: /home/cama/anaconda3/bin/python (找到版本 "3.6") -- 找不到基准测试 (缺少: Benchmark_INCLUDE_DIR Benchmark_LIBRARY) -- 找到 Git: /usr/bin/git (找到版本 "2.7" .4") -- git 版本:v0.0.0 -- 版本:0.0。
-- 找到 lmdb (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so) -- 找到 LevelDB: /usr/include
-- 找到 LevelDB (include: /usr/include,库:/usr/lib/x86_64-linux-gnu/libleveldb.so) -- 找到 Snappy:/usr/include
-- 找到 Snappy(包括:/usr/include,库:/usr/lib/libsnappy.so)- - 找不到 RocksDB(缺少:RocksDB_INCLUDE_DIR RocksDB_LIBRARIES)cmake/Dependencies.cmake:138 处的 CMake 警告(消息):未使用 RocksDB 编译。使用 -DUSE_ROCKSDB=OFF 调用堆栈(最近调用优先)抑制此警告:CMakeLists.txt:72(包括)

cmake/Dependencies.cmake:181 处的 CMake 警告(消息):未使用 OpenCV 编译。使用 -DUSE_OPENCV=OFF 调用堆栈(最近调用优先)抑制此警告:CMakeLists.txt:72(包括)

cmake/Dependencies.cmake:201 (find_package) 处的 CMake 警告:通过在 CMAKE_MODULE_PATH 中未提供“FindEigen3.cmake”,该项目已要求 CMake 查找“Eigen3”提供的包配置文件,但 CMake 没有找到。

找不到由“Eigen3”提供的具有以下任何名称的包配置文件:

将“Eigen3”的安装前缀添加到 CMAKE_PREFIX_PATH 或将“Eigen3_DIR”设置为包含上述文件之一的目录。如果“Eigen3”提供单独的开发包或SDK,请确保已安装。调用堆栈(最近的调用优先):CMakeLists.txt:72(包括)

-- 找到 PythonInterp: /home/cama/anaconda3/bin/python (找到合适的版本 "3.6", 最低要求是 "2.7") -- 找到 PythonLibs: /home/cama/anaconda3/lib/libpython3.6m.so (找到合适的版本“3.6.0”,最低要求是“2.7”)-找到 NumPy:/home/cama/anaconda3/lib/python3.6/site-packages/numpy/core/include(找到版本“1.11.3 ") -- NumPy 版本。找到 1.11.3(包括:/home/cama/anaconda3/lib/python3.6/site-packages/numpy/core/include)-找不到 pybind11(缺少:pybind11_INCLUDE_DIR)-找不到 MPI_C(缺少: MPI_C_LIBRARIES MPI_C_INCLUDE_PATH) -- 找不到 MPI_CXX (missing: MPI_CXX_LIBRARIES MPI_CXX_INCLUDE_PATH) cmake/Dependencies.cmake:257 处的 CMake 警告(消息):未使用 MPI 编译。

-- 尝试 OpenMP C 标志 = [-fopenmp] -- 执行测试 OpenMP_FLAG_DETECTED -- 执行测试 OpenMP_FLAG_DETECTED - 成功 -- 尝试 OpenMP CXX 标志 = [-fopenmp] -- 执行测试 OpenMP_FLAG_DETECTED -- 执行测试 OpenMP_FLAG_DETECTED - 成功 -- 找到 OpenMP : -fopenmp
-- 添加 -fopenmp -- 检测到 CUDA: 8.0 -- 为 sm_61 添加了 CUDA NVCC 标志 -- 找到 libcuda: /usr/local/cuda-8.0/lib64/stubs/libcuda.so -- 找到 libnvrtc: / usr/local/cuda-8.0/lib64/libnvrtc.so -- 找到 CUDNN: /usr/local/cuda-8.0/include
-- 执行测试 HAS_BUILTIN_CPU_SUPPORTS -- 执行测试 HAS_BUILTIN_CPU_SUPPORTS - 成功 -- 此编译器具有 builtin_cpu_supports 功能。-- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING -- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING - 失败 -- 由于 glog 关闭弃用警告。-- GCC 4.9.3:将 gcc 和 gcc_s 库添加到链接行 -- 包括 NCCL 运算符 -- 由于没有 opencv 排除图像处理运算符 -- 由于没有 opencv 排除视频处理运算符 -- 排除 mkl 运算符,因为我们没有使用mkl -- 由于没有 MPI 支持,跳过了 MPI 运算符 -- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING -- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING - 失败 -- 由于 glog 关闭弃用警告。-- GCC 4.9.3:将 gcc 和 gcc_s 库添加到链接行 -- 包括 NCCL 运算符 -- 由于没有 opencv 排除图像处理运算符 -- 由于没有 opencv 排除视频处理运算符 -- 排除 mkl 运算符,因为我们没有使用mkl -- 由于没有 MPI 支持,跳过了 MPI 运算符 -- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING -- 执行测试 CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING - 失败 -- 由于 glog 关闭弃用警告。-- GCC 4.9.3:将 gcc 和 gcc_s 库添加到链接行 -- 包括 NCCL 运算符 -- 由于没有 opencv 排除图像处理运算符 -- 由于没有 opencv 排除视频处理运算符 -- 排除 mkl 运算符,因为我们没有使用mkl -- 由于没有 MPI 支持,跳过了 MPI 运算符

-- 自动生成丢失的init .py 文件。

-- ******** 摘要 ******** -- 常规: -- Git 版本: -- 系统: Linux -- C++ 编译器: /usr/bin/c++ -- C++ 编译器版本: 4.9.3 -- Protobuf 编译器:/usr/bin/protoc -- CXX 标志: -fopenmp -Wno-deprecated -std=c++11 -fPIC -Wno-narrowing -- 构建类型: 发布

-- 编译定义:CAFFE2_USE_EIGEN_FOR_BLAS;CAFFE2_USE_GOOGLE_GLOG;CAFFE2_USE_GFLAGS;EIGEN_MPL2_ONLY

-- BUILD_SHARED_LIBS:开 -- BUILD_PYTHON:开 -- Python 版本:3.6.0 -- Python 库:/home/cama/anaconda3/lib/libpython3.6m.so -- USE_CUDA:开 -- CUDA 版本:8.0 -- USE_CNMEM:关闭——USE_NERVANA_GPU:关闭——USE_GLOG:开启——USE_GFLAGS:开启——USE_LMDB:开启——LMDB版本:0.9.10——USE_LEVELDB:开启——LevelDB版本:1.15——Snappy版本:1.1.0 -- USE_OPENCV: 关闭 -- USE_FFMPEG: -- USE_ZMQ: 关闭 -- USE_ROCKSDB: 关闭 -- USE_MPI: 关闭 -- USE_NCCL: 开启 -- USE_NNPACK: 关闭 -- USE_OPENMP: 开启 -- USE_REDIS: 关闭 -- USE_GLOO:ON -- 配置完成 -- 生成完成 -- 构建文件已写入:/home/chaoyang/caffe2-master/build

下面是make的正常输出。请关注最后几行,因为这些表示错误。

[ 77%] 构建 CXX 对象 caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/operators/conv_op_cache_cudnn_test.cc.o [ 77%] 链接 CXX 可执行二进制文件/conv_op_cache_cudnn_test libCaffe2_CPU.so:未定义对gflags::SetUsageMessage(std::string const&)' libCaffe2_CPU.so: undefined reference togoogle::protobuf::internal::WireFormatLite 的引用: :ReadString(google::protobuf::io::CodedInputStream*, std::string*)' libCaffe2_CPU.so: 对google::protobuf::Message::GetTypeName() const' libCaffe2_CPU.so: undefined reference togoogle::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)' 的未定义引用libCaffe2_GPU.so:未定义引用google::protobuf::internal::kEmptyString' libCaffe2_CPU.so: undefined reference togoogle::protobuf::MessageLite::SerializeToString(std::string*) const' libCaffe2_CPU.so:未定义引用google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))' libCaffe2_GPU.so: undefined reference togoogle::protobuf::TextFormat::ParseFromString(std::string const&, google::protobuf::Message*)' libCaffe2_GPU.so: 未定义的引用google::base::CheckOpMessageBuilder::NewString()' libCaffe2_CPU.so: undefined reference togoogle::protobuf::internal::WireFormatLite::WriteBytes(int, std::string const&, google::protobuf::io::CodedOutputStream*)' libCaffe2_GPU.so: 未定义引用google::protobuf::internal::StringTypeHandlerBase::New()' libCaffe2_CPU.so: undefined reference togflags::ParseCommandLineFlags(int*, char***, bool)' libCaffe2_GPU.so: 未定义引用google::protobuf::Message::ShortDebugString() const' libCaffe2_GPU.so: undefined reference togoogle::protobuf::MessageLite::ParseFromString(std::string const&)' libCaffe2_GPU.so: 未定义引用gflags::FlagRegisterer::FlagRegisterer(char const*, char const*, char const*, char const*, void*, void*)' libCaffe2_CPU.so: undefined reference togoogle::protobuf::internal::WireFormatLite ::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream*)' libCaffe2_GPU.so: 未定义对google::protobuf::internal::ParseNamedEnum(google::protobuf::EnumDescriptor const*, std::string const&, int*)' libCaffe2_GPU.so: undefined reference togoogle::protobuf::MessageLite::SerializeAsString() const' libCaffe2_CPU.so 的引用:未定义对google::protobuf::DescriptorPool::FindFileByName(std::string const&) const' libCaffe2_CPU.so: undefined reference togflags::ProgramUsage()' libCaffe2_CPU.so 的引用:未定义引用google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::string*)' libCaffe2_CPU.so: undefined reference to[ 3]: * [caffe2/binaries/conv_op_cache_cudnn_test] 错误 1 ​​make[3]: 离开目录 '/home/chaoyang/caffe2-master/build' CMakeFiles/Makefile2:1429: recipe for target 'caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/全部失败的制作[2]:[caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/all] 错误 2 make[2]:离开目录 '/home/chaoyang/caffe2-master/build' Makefile:138:目标 'all' 的配方失败 make[1]:[all] 错误 2 make[1]: 离开目录 '/home/chaoyang/caffe2-master/build' Makefile:4: recipe for target 'all' failed make: * [all] Error 2

似乎是 cudnn 库导致了这个错误,而我已经在 ubuntu 中成功使用了 cudnn-v5.1 和 cuda-8.0,特别是在 matconvnet 中,它需要 cuda 和 cudnn 来加快计算速度。而且似乎没有其他人以前遇到过这个错误,所以任何建议都将不胜感激!

0 投票
4 回答
246 浏览

caffe - 将同一网络的某些节点放在 GPU 上,将其他节点放在 CPU 上?

在 Caffe/Caffe2 中定义网络时,可以将一些节点放在 CPU 上,而将其他节点放在 GPU 上吗?如果是这样,怎么做?

(如果您的答案与特定版本的 Caffe 相关,请说明是哪一个)

0 投票
2 回答
445 浏览

memory-management - Caffe2 中的内存管理

我是 caffe2 的新手,我想知道 caffe2 框架如何将模型存储在 CPU 或 GPU 内存中以及如何维护。我已经尝试阅读它的 github 代码,但到目前为止还没有具体内容。谢谢您的帮助 :) :)

0 投票
1 回答
116 浏览

caffe - 所有 Caffe2 项目都必须在 caffe2 安装文件夹下吗?

我已经使用 NVIDIA 的 jetPack 在我的 TX2 上成功安装了 Caffe2。

我想弄清楚是否可以创建一个不在我的 caffe2 安装文件夹(安装 caffe2 的位置)下的文件夹并创建一个新的 cmake 项目。

如何连接该根 caffe2 文件夹中的库以在不在安装文件夹下的该文件夹中执行?

谢谢!

0 投票
0 回答
355 浏览

caffe2 - Python free() 中的 Caffe2 Import Throwing Error 无效大小

我正在尝试为 Caffe2 教程导入以下模块。

教程在这里:https ://github.com/caffe2/caffe2/blob/master/caffe2/python/tutorials/Loading_Pretrained_Models.ipynb

此处的模块:%matplotlib inline from caffe2.proto import caffe2_pb2 import numpy as np import skimage.io import skimage.transform from matplotlib import pyplot import os from caffe2.python import core, workspace, models import urllib2 print("required modules import." )

但它在导入时抛出了以下内容。" * `python' 中的错误:free():无效大小:0x0000000000de4e80 * 中止(核心转储)。

我将每一行一一删除,发现问题行是:from caffe2.python import core, workspace, models

如果我删除它,它将毫无问题地导入。

现在,如果我通过 python IDE 导入它,它可以工作。

任何帮助,将不胜感激!

谢谢

0 投票
1 回答
400 浏览

python - Food101 SqueezeNet Caffe2 迭代次数

我正在尝试使用 Caffe2 中的挤压网对 ETH Food-101 数据集进行分类。我的模型是从 Model Zoo 导入的,我对模型进行了两种类型的修改:

1) 将最后一层的尺寸更改为 101 个输出

2) 数据库中的图像采用 NHWC 形式,我只是翻转了权重的尺寸以匹配。(我打算改变这个)

Food101 数据集有 75,000 张图像用于训练,我目前使用的批量大小为 128,起始学习率为 -0.01,gamma 为 0.999,步长为 1。我注意到,对于网络的前 2000 次迭代,精度徘徊在 1/128 左右,这需要一个小时左右才能完成。

我将所有权重添加到 model.params 以便它们可以在梯度下降期间更新(数据除外)并将所有权重重新初始化为 Xavier 并将偏差设为常数。我希望在前 100 到 1000 次迭代中准确度会快速增长,然后随着迭代次数的增加而下降。就我而言,学习保持在 0 左右。

当我查看梯度文件时,我发现平均值约为 10^-6,标准偏差为 10^-7。这解释了缓慢的学习率,但我无法让梯度开始更高。

这些是几次迭代后第一次卷积的梯度统计

以下是我的代码的核心部分:

我的 add_params 函数初始化权重如下

我发现当我使用完整的训练集时,我的损失函数会波动,但如果我只使用一个批次并对其进行多次迭代,我会发现损失函数下降但非常缓慢。

0 投票
1 回答
161 浏览

python - Caffe2 中的 DummyData 层等效?

出于性能原因,我正在尝试将相当复杂的卷积神经网络从 Caffe 转换为 Caffe2。我知道转换等效层的教程,但是,我在 Caffe 中的 DummyData 层使转换崩溃。虽然我知道我很可能必须扩展教程脚本来解决这个问题,但我希望有人能指出我在 Caffe2 中构建等效层的正确方向。

我还必须转换几个不同的 python 层,所以我不可避免地需要修改 Caffe2 Github repo 中的教程;我只是不确定如何解决这个问题,并认为看看 DummyData 层是如何完成的会很有帮助。不幸的是,我无法访问我编写的代码,因为它是在我的计算机上工作,但是,到目前为止,我所做的只是添加了一个新函数,该函数具有与所有其他层相似的 args 并创建一个新的运营商。我不确定这是否是正确的方法(因为我可能错过了一个大致相同的现有运营商)。