【问题标题】:How to test the model created using mnist dataset如何测试使用 mnist 数据集创建的模型
【发布时间】:2016-06-16 23:05:10
【问题描述】:

我是 caffe 的新手,因此尝试使用 MNIST 数据集。我运行了以下命令

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

我没有更改 caffe 中的任何文件,只执行了上述 3 行。

我的example/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 来完成。任何帮助将不胜感激。

【问题讨论】:

    标签: caffe pycaffe


    【解决方案1】:
    1. 您需要将图像缩小到所需的 28x28 尺寸。

    2. 您已经创建了一个 LMDB 格式的数据集:

      • ./data/mnist/get_mnist.sh
      • ./examples/mnist/create_mnist.sh

    并且已经训练了模型:

    • ./examples/mnist/lenet_train_test.prototxt

    其权重存储为:

    • ./examples/mnist/lenet_iter_10000.caffemodel

    您现在想要部署您的分类器。 lenet.prototxt 的核心是相同的模型,只是它的输入和输出发生了变化。部署时,您希望在实践中使用常规图像作为输入。

    • ./examples/mnist/lenet.prototxt:部署模型
    • ./examples/mnist/lenet_iter_10000.caffemodel:学习权重

    .

    我不知道您是否可以简单地使用 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),但我再次不确定平均图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      相关资源
      最近更新 更多