caffe.io.Transformer 用于 LeNet 分类
caffe.io.Transformer to use for LeNet classification
我正在尝试使用 LeNet 对数字 (0-9) 进行分类。
我读取尺寸为 28x28 的图像,转置它们,并将一个颜色通道发送到网络中。
bild = mpimg.imread('pathToImg')
bild = np.transpose(bild,(2,0,1))
并得到毫无意义的预测。
我看到 PyCaffe 有一个 Transformer 可以完成这项工作,但我不知道如何将它用于 LeNet。
我正在使用来自 caffe/examples/mnist 的网络(希望它能回答网络期望的数据类型)。
唯一不同的是现在的输入是:
input_shape {
dim: 1
dim: 1
dim: 28
dim: 28
}
由于您直接使用 deploy prototxt,因此您应该查看 lenet_train_test.prototxt 中的 "data" 层(或具有类似名称的文件),这将向您说明如何数据已预处理。
通过查看我的文件,LeNet 示例似乎对所有输入数据执行了缩放。这由 "data" 层
中的以下几行表示
transform_param {
scale: 0.00390625
}
所以这是您可能遗漏的一件事。查看 imagenet tutorial 以获取有关预处理(尤其是 Transformer)的指示。其次,您正在阅读图像
bild = np.transpose(bild,(2,0,1))
根据您正在执行的通道交换,这看起来像是一个错误,因此请确保发送到网络的数据的尺寸为 - 1(批量大小)x 1(通道)x 28(高度)x 28 (宽度).
我正在尝试使用 LeNet 对数字 (0-9) 进行分类。
我读取尺寸为 28x28 的图像,转置它们,并将一个颜色通道发送到网络中。
bild = mpimg.imread('pathToImg')
bild = np.transpose(bild,(2,0,1))
并得到毫无意义的预测。 我看到 PyCaffe 有一个 Transformer 可以完成这项工作,但我不知道如何将它用于 LeNet。
我正在使用来自 caffe/examples/mnist 的网络(希望它能回答网络期望的数据类型)。
唯一不同的是现在的输入是:
input_shape {
dim: 1
dim: 1
dim: 28
dim: 28
}
由于您直接使用 deploy prototxt,因此您应该查看 lenet_train_test.prototxt 中的 "data" 层(或具有类似名称的文件),这将向您说明如何数据已预处理。
通过查看我的文件,LeNet 示例似乎对所有输入数据执行了缩放。这由 "data" 层
中的以下几行表示transform_param {
scale: 0.00390625
}
所以这是您可能遗漏的一件事。查看 imagenet tutorial 以获取有关预处理(尤其是 Transformer)的指示。其次,您正在阅读图像
bild = np.transpose(bild,(2,0,1))
根据您正在执行的通道交换,这看起来像是一个错误,因此请确保发送到网络的数据的尺寸为 - 1(批量大小)x 1(通道)x 28(高度)x 28 (宽度).