咖啡重塑零

  • 本文关键字:咖啡 c# opencv caffe
  • 更新时间 :
  • 英文 :


我是Caffe的新手,也许我做错了什么或理解了其他事情。

我在Caffe中创建了我的第一个脚本,我试图使用具有相同参数的整形来获得与输出相同的输入,我在输出中获得了相同的大小,但都是零。

我尝试过这个prototxt文件:

name: "copying"
layer {
name: "input"
type: "Input"
top: "input"
input_param { shape: { dim: 1 dim: 1 dim: 2 dim: 2 } }
}
layer {
name: "data"
type: "Reshape"
bottom: "input"
top: "data"
reshape_param { shape: { dim: 1 dim: 1 dim: 2 dim: 2 } }
}
name: "copying"
input: "input"
input_dim: 1
input_dim: 1
input_dim: 2
input_dim: 2
layer {
name: "data"
type: "Reshape"
bottom: "input"
top: "data"
reshape_param { shape: { dim: 0 dim: 0 dim: 0 dim: 0 } }
}

这是我的代码:

var input = new Mat(new[] {1, 1, 2, 2}, MatType.CV_8S, new byte[] { 1, 2, 3, 4 });
using var net = OpenCvSharp.Dnn.Net.ReadNetFromCaffe("copying.prototxt");
net.SetInput(input);
using var output = net.Forward();

我还试着用这个名字

var input = new Mat(new[] {1, 1, 2, 2}, MatType.CV_8S, new byte[] { 1, 2, 3, 4 });
using var net = OpenCvSharp.Dnn.Net.ReadNetFromCaffe("copying.prototxt");
net.SetInput(input, "input");
using var output = net.Forward("data");

这是输入和输出

[1,2,3,4]
[0,0,0,0]

我发现了问题,无论输入层是MatType.CV_8S,结果都是MatType.CF_32FC1。因此,当解析结果数组时,应该将其强制转换为float

最新更新