我想知道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)?
答案 0 :(得分:2)
它有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)
...
并且进一步。