caffe.io.Transformer用于LeNet分类

时间:2016-04-12 14:26:25

标签: caffe pycaffe

我正在尝试使用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
}

1 个答案:

答案 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(宽度) )。