我是caffe的新手,因此试图使用MNIST数据集。我运行了以下命令
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh
我没有改变caffe中的任何文件,只执行了上面的3行。
我的示例/ mnist文件夹结构如下:
examples/mnist/
|-- convert_mnist_data.cpp
|-- create_mnist.sh
|-- lenet_adadelta_solver.prototxt
|-- lenet_auto_solver.prototxt
|-- lenet_consolidated_solver.prototxt
|-- lenet_iter_10000.caffemodel
|-- lenet_iter_10000.solverstate
|-- lenet_iter_5000.caffemodel
|-- lenet_iter_5000.solverstate
|-- lenet_multistep_solver.prototxt
|-- lenet.prototxt
|-- lenet_solver_adam.prototxt
|-- lenet_solver.prototxt
|-- lenet_solver_rmsprop.prototxt
|-- lenet_train_test.prototxt
|-- mnist_autoencoder.prototxt
|-- mnist_autoencoder_solver_adadelta.prototxt
|-- mnist_autoencoder_solver_adagrad.prototxt
|-- mnist_autoencoder_solver_nesterov.prototxt
|-- mnist_autoencoder_solver.prototxt
|-- mnist_test_lmdb
| |-- data.mdb
| `-- lock.mdb
|-- mnist_train_lmdb
| |-- data.mdb
| `-- lock.mdb
|-- readme.md
|-- train_lenet_adam.sh
|-- train_lenet_consolidated.sh
|-- train_lenet_docker.sh
|-- train_lenet_rmsprop.sh
|-- train_lenet.sh
|-- train_mnist_autoencoder_adadelta.sh
|-- train_mnist_autoencoder_adagrad.sh
|-- train_mnist_autoencoder_nesterov.sh
`-- train_mnist_autoencoder.sh
我想测试通过传递大小为256 * 256但不知道如何操作的图像而创建的模型,并希望使用python来完成。任何帮助将不胜感激。
答案 0 :(得分:1)
您需要将图像缩小到所需的尺寸28x28。
您已经以LMDB格式创建了一个数据集:
已经训练了模型:
其权重存储为:
您现在想要部署分类器。 lenet.prototxt是核心相同的模型,除了它的输入和输出已经改变。部署时,您希望在实践中输入常规图像。
我不知道你是否可以简单地使用caffe工具并在图像上运行测试命令。
最简单的分类方法似乎是使用matlab或python。
这是一个matlab示例:
model = 'lenet.prototxt';
weights = 'lenet_iter_10000.caffemodel';
%caffe.set_mode_gpu();
%caffe.set_device(0);
net = caffe.Net(model, weights, 'test');
image = imread('example.png');
res = net.forward({image});
prob = res{1}
这是一个使用python(./examples/00-classification.ipynb)的分类教程。但是,它是为ilsvrc12类型的数据集而设计的。如果您只是忽略减去平均图像,它可能会起作用。
还有一个CPP示例(./examples/cpp_classification),但我再也不确定平均图像。