我正在尝试使用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
}
答案 0 :(得分:1)
由于您直接使用部署原型,您应该查看lenet_train_test.prototxt(或具有类似名称的文件)中的“数据”图层,它将指示数据的预处理方式。
通过查看我的文件,似乎LeNet示例执行所有输入数据的缩放。这由“数据”层
中的以下行表示transform_param {
scale: 0.00390625
}
所以这可能是你遗失的一件事。查看imagenet tutorial有关预处理的指针(esp Transformer)。其次,您正在阅读图像
bild = np.transpose(bild,(2,0,1))
这看起来像是基于您正在执行的频道切换的错误,因此请确保发送到网络的数据具有尺寸 - 1(批量大小)x 1(通道)x 28(高度)x 28(宽度) )。