标签: caffe2

caffe2 Tensor <CUDAContext>赋值,构造或复制

这是一个很长的镜头,如果您认为问题太局部化,请投票结束.我搜索了caffe2 github存储库,打开了一个问题同样的问题,在caffe2_ccp_tutorials存储库中打开了另一个问题,因为它的作者似乎最了解它,阅读caffe2 :: Tensorcaffe2 :: CUDAContext上的doxygen文档,甚至通过caffe2 源代码,特别是tensor.h,context_gpu.hcontext_gpu.cc.

我知道目前caffe2不允许将设备内存复制到张量.我愿意扩展库并执行拉取请求以实现此目的.我背后的原因是我使用cv::cuda::*在设备内存上运行的方法进行所有图像预处理,因此我认为在gpu上进行预处理显然是一个问题,只是将结果下载到主机上,然后让它从主机重新上传到网络.

看看Tensor<Context>我的构造函数,我可以看到

template<class SrcContext , class ContextForCopy > 
Tensor (const Tensor< SrcContext > &src, ContextForCopy *context)
Run Code Online (Sandbox Code Playgroud)

可能会实现我想要的,但我不知道如何设置<ContextForCopy>然后用它来构建.

此外,我看到我可以用正确的尺寸构造Tensor,然后可以使用

template <typename T>
T* mutable_data()
Run Code Online (Sandbox Code Playgroud)

我可以分配/复制数据.数据本身存储在std::vector<cv::cuda::GpuMat,因此我将不得不迭代它,然后使用cuda::PtrStepSzcuda::PtrStep访问底层设备分配的数据.这是我需要复制/分配到的相同数据caffe2::Tensor<CUDAContext>.

我一直试图找出内部Tensor<CPUContext>被复制的内容,Tensor<CUDAContext>因为我已经看过它的例子,但我无法弄明白,尽管我认为使用的方法是CopyFrom.如上所述的常见示例,从CPU复制到GPU:

TensorCPU tensor_cpu(...);
TensorCUDA tensor_cuda = workspace.CreateBlob("input")->GetMutable<TensorCUDA>();
tensor_cuda->ResizeLike(tensor_cpu); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv caffe2

8
推荐指数
1
解决办法
647
查看次数

用Java加载ONNX模型

我有一个训练有素的PyTorch模型,我现在想用ONNX导出到Caffe2.这部分看起来相当简单并且有很好的记录 但是,我现在想要将该模型"加载"到Java程序中,以便在我的程序中执行预测(Flink流应用程序).做这个的最好方式是什么?我无法在网站上找到任何描述如何执行此操作的文档.

java caffe2

8
推荐指数
1
解决办法
897
查看次数

通过GPU支持在Google Colaboratory中安装caffe2

是否有可能在支持GPU的Google Colaboratory中安装caffe2(而不是caffe)?我按照 Caffe2的安装说明尝试了很多方法,但是我无法成功安装GPU支持.当我测试caffe2安装时,我得到消息:"这个caffe2 python运行没有GPU支持.将在仅CPU模式下运行."

caffe2 google-colaboratory

6
推荐指数
0
解决办法
581
查看次数

Caffe2:加载ONNX模型,并在多核主机/ docker上推断单线程

当主机具有多个核心时,我无法在docker中的模型上运行推理。通过PyTorch 1.0 ONNX导出器导出模型:

torch.onnx.export(pytorch_net, dummyseq, ONNX_MODEL_PATH)
Run Code Online (Sandbox Code Playgroud)

使用单核启动模型服务器(包装在Flask中)可获得可接受的性能(cpuset将进程固定到特定的cpus) docker run --rm -p 8081:8080 --cpus 0.5 --cpuset-cpus 0 my_container

来自的回应 ab -c 1 -n 1000 http://0.0.0.0:8081/predict\?itemids\=5,100

Percentage of the requests served within a certain time (ms)
  50%      5
  66%      5
  75%      5
  80%      5
  90%      7
  95%     46
  98%     48
  99%     49
Run Code Online (Sandbox Code Playgroud)

但是,将其固定到四个内核,对于相同的ab-call来说,将提供完全不同的统计信息 docker run --rm -p 8081:8080 --cpus 0.5 --cpuset-cpus 0,1,2,3 my_container

Percentage of the requests served within a certain time (ms)
  50%      9
  66%     12
  75%     14
  80%     18
  90% …
Run Code Online (Sandbox Code Playgroud)

python docker pytorch caffe2 onnx

6
推荐指数
1
解决办法
391
查看次数

将nngraph模型转换为nn模型

我想将pix2pix Image转换为使用nngraph构建的图像转换模型(https://github.com/phillipi/pix2pix).

当我尝试使用torch to caffe工具将其转换为caffe模型时(https://github.com/facebook/fb-caffe-exts#torch2caffe)我收到错误"unknown class nn.gModule".

我还尝试通过torch.utils.serialization中的load_lua在pytorch中加载火炬模型,在那里我得到类似的错误.

因为,转换似乎不支持nngraph.有没有办法将nngraph模型转换为nn模型而无需重写或重新训练?接下来,我想将pix2pix模型转换为各种格式,如caffe,caffe2,coreML等,以测试移动环境中的性能.

谢谢

torch caffe pytorch caffe2

5
推荐指数
0
解决办法
562
查看次数

掩盖r-cnn的AP,AP50,AP70是什么意思?

我是r-cnn的新手。

面膜r-cnn纸上有术语AP,AP50,AP75。50、75是小的后缀,对不起,我不能缩小它的大小。无论如何,论文说它是超过IOU阈值的平均值。对于AP50,仅对与地面真实性进行比较的区域中超过50%的候选者进行计数,对于AP75,仅对75%的区域中的候选者进行计数。那么什么是空AP?我知道AP使用70%IoU阈值,但事实并非如此。因为只有AP比AP75低。

此外,还有其他一些我不太理解的术语。它们是AP,M,L。我知道它们的意思是小,中,大。然后有什么标准可以确定它们有多大。只是说小,中,大让我有些困惑。

提前致谢!

convolution deep-learning caffe deconvolution caffe2

5
推荐指数
1
解决办法
2586
查看次数

AttributeError:模块'caffe2.python._import_c_extension'没有属性'get_cudnn_version'

我现在正在努力解决这个错误几天,我不知道如何解决这个问题.这是我尝试从Caffe2包导入核心模块时遇到的错误.

from caffe2.python import core

AttributeError: module 'caffe2.python._import_c_extension' has no attribute 'get_cudnn_version'
Run Code Online (Sandbox Code Playgroud)

我在Google上搜索了很多,但找不到任何可以解决这个问题的答案.有人知道如何解决这个问题吗?

python deep-learning caffe2

5
推荐指数
0
解决办法
210
查看次数

为什么在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)?

似乎有几种方法可以在 iOS 上运行 Pytorch 模型。

  1. PyTorch(.pt) -> onnx -> caffe2
  2. PyTorch(.pt) -> onnx -> Core-ML (.mlmodel)
  3. PyTorch(.pt) -> LibTorch (.pt)
  4. PyTorch 移动版?

上述方法有什么区别?为什么人们使用 caffe2 或需要模型格式转换的 Core-ml (.mlmodel),而不是 LibTorch?

pytorch caffe2 coreml onnx libtorch

4
推荐指数
1
解决办法
415
查看次数

安装Caffe2时与Eigen相关的错误

我在安装Caffe2时遇到错误.在成功构建之后,在sudo make install步骤中,它会抛出错误,因为#error Caffe2要求Eigen至少为3.3.0

eigen3 ubuntu-16.04 caffe2

1
推荐指数
1
解决办法
1513
查看次数