深度学习--【2】将自己的手写体数字图片送入Lenet模型预测
2018-01-19 14:28
399 查看
参参考参考文章http://blog.csdn.net/zb1165048017/article/details/52217772
得到mean.binaryproto
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale:0.00390625
}
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale: 0.00390625
}
data_param {
source: "examples/mnist/mnist_test_lmdb"
batch_size: 100
backend: LMDB
}
}
同时还要修改lenet_train_test1.prototxt# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test1.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
[html] view plain copy print?0
1
2
3
4
5
6
7
8
9
调用classification.exe去识别某张图片,E:\CaffeDev-GPU\caffe-master目录新建mnist_class.sh#!/bin/bash
CMD="sudo build/examples/cpp_classification/classification.bin examples/mnist/lenet.prototxt examples/mnist/lenet_iter_10000.caffemodel examples/mnist/mean.binaryproto examples/mnist/synset_words.txt"
for file in ./examples/mnist/binarybmp/*
do
if test -f $file
then
#echo $CMD $file
$CMD $file
fi
done
执行./mnist_class.sh
运行结果
---------- Prediction for ./examples/mnist/binarybmp/0.bmp ----------
1.0000 - "0"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/1.bmp ----------
1.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/2.bmp ----------
1.0000 - "2"
0.0000 - "0"
0.0000 - "3"
0.0000 - "1"
0.0000 - "4"
---------- Prediction for ./examples/mnist/binarybmp/3.bmp ----------
1.0000 - "3"
0.0000 - "4"
0.0000 - "1"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/4.bmp ----------
1.0000 - "4"
0.0000 - "1"
0.0000 - "3"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/5.bmp ----------
1.0000 - "5"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/66.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/7.bmp ----------
1.0000 - "7"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/8.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/9.bmp ----------
1.0000 - "9"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
红色字体的为错误预测,试了好几次,修改自己手写的6的出来的预测结果都是8,原因待查
第一步
按照前面的model生成方法的前两步骤制作数据集,在examples/mnist得到两个文件夹mnist_test_lmdb和mnist_train_lmdb第二步
计算均值文件:在examples/mnist目录下新建sh文件mnist_mean.sh,内容如下[html] view plain copy print?sudo ../../build/tools/compute_image_mean mnist_train_lmdb mean.binaryproto得到mean.binaryproto
第三步
执行命令:$ sudo cp lenet_train_test.prototxt lenet_train_test1.prototxt$ sudo cp lenet_solver.prototxt lenet_solver1.prototxt将lenet_train_test.prototxt和lenet_solver.prototxt复制出来一份,修改lenet_train_test1.prototxt的前两层,就是在原来的基础上把均值文件加进去。name: "LeNet"layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale:0.00390625
}
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale: 0.00390625
}
data_param {
source: "examples/mnist/mnist_test_lmdb"
batch_size: 100
backend: LMDB
}
}
同时还要修改lenet_train_test1.prototxt# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test1.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
第四步
把转换好的二值图像拷贝到~/caffe/examples/mnist/binarybmp/在~/caffe/examples/mnist/下建立标签文件synset_words.txt:[html] view plain copy print?0
1
2
3
4
5
6
7
8
9
调用classification.exe去识别某张图片,E:\CaffeDev-GPU\caffe-master目录新建mnist_class.sh#!/bin/bash
CMD="sudo build/examples/cpp_classification/classification.bin examples/mnist/lenet.prototxt examples/mnist/lenet_iter_10000.caffemodel examples/mnist/mean.binaryproto examples/mnist/synset_words.txt"
for file in ./examples/mnist/binarybmp/*
do
if test -f $file
then
#echo $CMD $file
$CMD $file
fi
done
执行./mnist_class.sh
运行结果
---------- Prediction for ./examples/mnist/binarybmp/0.bmp ----------
1.0000 - "0"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/1.bmp ----------
1.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/2.bmp ----------
1.0000 - "2"
0.0000 - "0"
0.0000 - "3"
0.0000 - "1"
0.0000 - "4"
---------- Prediction for ./examples/mnist/binarybmp/3.bmp ----------
1.0000 - "3"
0.0000 - "4"
0.0000 - "1"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/4.bmp ----------
1.0000 - "4"
0.0000 - "1"
0.0000 - "3"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/5.bmp ----------
1.0000 - "5"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/66.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/7.bmp ----------
1.0000 - "7"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/8.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/9.bmp ----------
1.0000 - "9"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
红色字体的为错误预测,试了好几次,修改自己手写的6的出来的预测结果都是8,原因待查
相关文章推荐
- 深度学习(二).Caffe之使用LeNet-5模型识别手写体数字
- caffe之利用mnist数据集训练好的lenet_iter_10000.caffemodel模型测试一张自己的手写体数字
- 【深度学习】笔记3_caffe自带的第一个例子,Mnist手写数字识别所使用的LeNet网络模型的详细解释
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-4应用生成模型进行预测
- 深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- 使用lenet模型训练及预测自己的图片数据
- caffe之利用mnist数据集训练好的lenet_iter_10000.caffemodel模型测试一张自己的手写体数字
- 02:一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)
- 深度学习之LeNet模型
- TensorFlow 深度学习框架(6)-- mnist 数字识别及不同模型效果比较
- TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
- TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
- 深度学习之一:卷积神经网络CNN经典模型整理(Lenet-5)
- TensorFlow 深度学习框架(6)-- mnist 数字识别及不同模型效果比较
- 深度学习二:自己写java代码,识别手写数字
- TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
- TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
- 深度学习(一)学会用CAFFE训练自己的模型
- 深度学习--卷积神经网络CNN经典模型:Lenet、Alexnet、GoogleNet、VGG、Deep Residual Learning