Caffe 重塑零点
Caffe reshape zeros
我是 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.CV_32FC1 ,所以当结果数组被解析时应该被转换为 float.
我是 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.CV_32FC1 ,所以当结果数组被解析时应该被转换为 float.