1

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

1 回答 1

2

由于您直接使用部署 prototxt,因此您应该查看 lenet_train_test.prototxt(或具有相似名称的文件)中的“数据”层,这将告诉您数据是如何预处理的。

通过查看我拥有的文件,LeNet 示例似乎执行了所有输入数据的缩放。这由“数据”层中的以下行表示

transform_param {
    scale: 0.00390625
}

所以这是你可能会错过的一件事。查看imagenet 教程以获取有关预处理(尤其是 Transformer)的指针。其次,您在图像中读取为

bild = np.transpose(bild,(2,0,1))

根据您正在执行的通道交换,这看起来像是一个错误,因此请确保发送到网络的数据具有尺寸 - 1(批量大小)x 1(通道)x 28(高度)x 28(宽度)。

于 2016-04-14T02:12:53.523 回答