【问题标题】:What is the memory layout of the weights and bias of dnn module?dnn 模块的权重和偏差的内存布局是什么?
【发布时间】:2017-12-05 14:34:31
【问题描述】:

我想知道 dnn 模块的内存布局,以便将权重移植到另一个库。

我可以按以下方式访问权重和偏差

cv::Mat weight = input_net.getParam(input_layer_name.c_str(), 0);
cv::Mat bias = input_net.getParam(input_layer_name.c_str(), 1);

如果我有一个卷积层,有 3 个输入过滤器、64 个输出过滤器和 3x3 内核,那么内存布局会是什么样子?如果是卷积层,我应该有 3*3*3*64 的权重和 64 的偏差。我怎么知道每个权重和偏差在权重和偏差矩阵中的位置?

更准确地说,我如何访问图表中显示的权重(A,C,N)?

【问题讨论】:

  • 顺便说一句,有趣的是,另一个库是什么?

标签: c++ opencv deep-learning


【解决方案1】:

它有W x H x InCh x OutCh 布局。从最低到最高的指数。类似的东西:

w[0]: (x1, y1, inc1, outc1)
w[1]: (x2, y1, inc1, outc1)
...
w[n-1]: (xn, y1, inc1, outc1)
w[n]:   (x1, y2, inc1, outc1)
w[n+1]: (x2, y2, inc1, outc1)
...

还有更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2019-10-16
    • 2017-07-15
    • 2020-12-31
    • 2021-11-07
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多