Caffemnist识别的流程
Posted Taily老段
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffemnist识别的流程相关的知识,希望对你有一定的参考价值。
cd $CAFFE_ROOT
训练数据下载
./data/mnist/get_mnist.sh
#!/usr/bin/env sh
# This scripts downloads the mnist data and unzips it.
DIR="$( cd "$(dirname "$0")" ; pwd -P )"
cd "$DIR"
echo "Downloading..."
for fname in train-images-idx3-ubyte train-labels-idx1-ubyte t10k-images-idx3-ubyte t10k-labels-idx1-ubyte
do
if [ ! -e $fname ]; then
wget --no-check-certificate http://yann.lecun.com/exdb/mnist/$fname.gz
gunzip $fname.gz
fi
done
制作数据集:
./examples/mnist/create_mnist.sh
#!/usr/bin/env sh
# This script converts the mnist data into lmdb/leveldb format,
# depending on the value assigned to $BACKEND.
set -e
EXAMPLE=examples/mnist
DATA=data/mnist
BUILD=build/examples/mnist
BACKEND="lmdb"
echo "Creating $BACKEND..."
rm -rf $EXAMPLE/mnist_train_$BACKEND
rm -rf $EXAMPLE/mnist_test_$BACKEND
$BUILD/convert_mnist_data.bin $DATA/train-images-idx3-ubyte \\
$DATA/train-labels-idx1-ubyte $EXAMPLE/mnist_train_$BACKEND --backend=$BACKEND
$BUILD/convert_mnist_data.bin $DATA/t10k-images-idx3-ubyte \\
$DATA/t10k-labels-idx1-ubyte $EXAMPLE/mnist_test_$BACKEND --backend=$BACKEND
echo "Done."
训练模型:
./examples/mnist/train_lenet.sh
# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
# solver mode: CPU or GPU
solver_mode: CPU
制作测试图片:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from PIL import Image
im = Image.open('4.png')
im.thumbnail((28, 28))
tt = im.convert('1')
tt.save('test4.bmp')
测试图片:test.py
import os
import sys
import numpy as np
import matplotlib.pyplot as plt
caffe_root = '/usr/local/Cellar/caffe/'
sys.path.insert(0, caffe_root + 'python')
import caffe
MODEL_FILE = caffe_root+'examples/mnist/lenet.prototxt'
PRETRAINED = caffe_root+'examples/mnist/lenet_iter_5000.caffemodel'
IMAGE_FILE = caffe_root+'examples/images/test4.bmp'
input_image = caffe.io.load_image(IMAGE_FILE, color=False)
net = caffe.Classifier(MODEL_FILE, PRETRAINED)
prediction = net.predict([input_image], oversample = False)
caffe.set_mode_cpu()
print 'predicted class:', prediction[0].argmax()
predicted class: 4
以上是关于Caffemnist识别的流程的主要内容,如果未能解决你的问题,请参考以下文章