- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 caffe 提供的图层类“CuDNNConvolutionLayer”导入到我自己的项目(纯 C++ 项目)中。因此我不能使用 prototxt 来指定图层。相反,我必须在声明图层时手动将参数发送到该图层。 (我不确定这种方式是否正确,我只是在探索)
我这样做了:
int param={20,5,1,0,1,1,???,???}; caffe::CuDNNConvolutionLayer<float> cv1(*param);
param中的最后两个参数设置为初始化“bias_term”(true或false)和“engine”(caffe或CUDNN)。正如我提到的,我不能忽略这两个值,因为这不是 prototxt,所以如果我想使用 CUDNN 引擎并且没有偏差项,我应该在这里填写什么值? (我已经将参数声明为 int,所以我认为并期望答案应该是 0、1 - 希望如此)
Operating system: ubuntu 18.04
Compiler: gcc
CUDA version (if applicable): 10.0
CUDNN version (if applicable): v7
BLAS:
Python version (if using pycaffe):
MATLAB version (if using matcaffe):
最佳答案
CuDNNConvolutionLayer 构造函数接受对 LayerParameter protobuf 对象(不是 int*)的引用。因此,您必须使用默认构造函数创建一个空的 LayerParameter 对象,并使用其设置方法向其添加必要的字段。据我所知,ProtoBuf 不支持 {} 样式的初始化。
另一种初始化 LayerParameter 的方法是使用其 ProtoText 表示来解析字符串文字。
阅读 "ProtoBuf C++ generated code" 的文档会有帮助。
此外,检查 source of Scale layer有关创建 FillerParameter 和 LayerParameter 以构建图层的示例。
关于c++ - 如何在 C++ 中初始化卷积层而不是 prototxt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54994748/
我是一名优秀的程序员,十分优秀!