三星笔记本win8下仅CPU配置Caffe
一.工具
1.VS2013(专业版)下载链接
ed2k://|file|cn_visual_studio_professional_2013_x86_dvd_3009203.iso|3020535808|133B4703B20B4E78C1742E3AC8665CBC|/
激活密匙:XDM3T-W3T3V-MGJWK-8BFVD-GVPKY
2.Cuda下载网址:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=7&target_type=exelocal
3.Cudnn下载网址:
https://developer.nvidia.com/cudnn
4.Caffe下载网址:https://github.com/Microsoft/caffe
https://github.com/BVLC/caffe/tree/windows(本文未用)
如果没有Nivid英伟达GPU,而英伟达GPU使用的是专用库CUDA,只使用CPU模式的话,就不用下载和安装Cuda和Cudnn。
二.实施步骤
1.下载Caffe,并解压出源代码文件夹caffe-master,放在
E:/xlx下打开该文件夹下的windows文件夹,将CommonSettings.props.example文件复制到该目录下并重命名为CommonSettings.props。用VS 2013单独打开,根据内容修改所支持的matlab和python的true 或者false,然后进行保存。注意:此处一定要先单独打开步骤1中的CommonSettings.props文件修改并保存后,再打开caffe.sln,否则会出现libcaffe和test_all无法加载的错误。
2.找到E:/xlx/caffe-master/windows文件夹下的caffe.sln,用VS 2013打开。点击菜单栏 生成—配置管理器,选择方案配置为Release,方案平台为x64。
3.右键libcaffe,生成。可能会出现错误,当出现错误的时候,双击该错误,弹出对话框,点击确定会跳转到错误文件中,然后保存,再次右键libcaffe,重新生成。
4.右键整个解决方案,生成解决方案,等待一段时间,整个项目编 caffe-master/Buid/x64下会出现Release文件夹,里面是全部的编译成功的和运行时候需要用到的动态库以及exe文件;此外,在整个项目编译过程中会提示Nuget在下载,下载的内容是编译过程中用到的一些依赖包,编译完成后会在caffe-master同级文件夹下出现NugetPackages(在E:/xlx下)文件夹,内容如下图所示:
注意很多情况下此包难以生成或者生成的不全。
缺一不可。
5.单击选中caffe,点击菜单栏 调试-开始执行,或者直接按ctrl+F5,会弹出命令窗口,如下图所示:
说明windows系统下的caffe安装成功。
当不出现时请点击项目/属性/配置属性/调试 ,如下图所示:
即可!
三.验证安装
1.Mnist
参考网址
https://blog.csdn.net/liuweiyuxiang/article/details/79532073
(1)下载数据
mnist下载地址http://yann.lecun.com/exdb/mnist/
将下载的数据集放在E:/xlx/mnistshujuji下,并解压。
将解压出来的文件夹复制一份到E:/xlx/caffe-master/data/mnist下,后面生成lmdb格式文件会用到。
(2)处理数据
需要将原始数据处理成lmdb数据文件
在E:/xlx/caffe-master/下创建一个批处理文件create_mnist.bat,将如下命令复制到文件中
.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\train-images.idx3-ubyte .\data\mnist\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb
echo. .
.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\t10k-images.idx3-ubyte .\data\mnist\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb
Pause
然后双击create_mnist.bat执行命令后会在E;/xlx/caffe-master/examples/mnist下生成两个lmdb格式文件如下图所示:
(3)修改配置文件
打开 E:/xlx/caffe-master\examples\mnist下的lenet_solver.prototxt 修改solver_mode为CPU和lenet_train_test.prototxt 的两处训练和测试lmdb数据所在的路径为source: "E:/xlx/caffe-master/examples/mnist/mnist_train_lmdb"和source: “E:/xlx/caffe-master/examples/mnist/mnist_test_lmdb”。
(4)训练和测试
在 E:/xlx/caffe-master下创建一个批处理文件train_mnist.bat,将如下命令复制到文件中
.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
Pause
然后双击train_mnist.bat执行命令,运行15分钟左右
输出Optimization Done.表示训练结束,结果如下图所示:
训练完成后在E:/xlx/caffe-master\examples\mnist文件夹下会生成训练好的模型如下图所示:
Cifar10训练及测试(待验证)
参考网址
https://blog.csdn.net/weixinhum/article/details/71304852
cifar-10下载地址 http://www.cs.toronto.edu/~kriz/cifar.html
选择第三个下载!
生成步骤:
1.格式转换(下载的cifar-10是二进制文件,caffe无法直接处理,需要格式转换)
首先解压,把里面“.bin”后缀的文件拷贝到“caffe\bin\input(自己创建一个input文件夹)”中。
然后再创建一个“output”文件夹来存放中间文件。
接着,在“F:/li/li/bin”路径下创建一个名为cifar的bat文件,内容如下:
convert_cifar_data.exe input output leveldb
Pause
这里的“convert_cifar_data.exe”是已经下载的caffe里面就有的,而“input ”、“output ”为两个文件夹,“leveldb”为转换格式。双击运行bat,不出意外在“output”文件夹下会生成“cifar10_test_leveldb”和“cifar10_train_leveldb”两个文件夹。如下所示:
上面就完成了对于“cifar-10”这个图片库的格式转换即将下载的二进制文件转换为leveldb格式(caffe本身只支持leveldb和lmdb两种数据格式)。
2.求数据图像的均值,获取“mean.binaryproto”均值文件
在“F:/li/li/bin”路径下创建一个名为cifar2的bat文件,内容如下:
compute_image_mean.exe–backend=leveldb output/cifar10_train_leveldb mean.binaryproto
Pause
这里的“compute_image_mean.exe”是已经下载的caffe里面就有的,“output/cifar10_train_leveldb”为刚刚生成的文件夹路径,“mean.binaryproto”为生成文件名。
双击运行bat,在“F:/li/li/bin”路径下会生成“mean.binaryproto”。如下图:
3.分类器训练
经过上面的操作已经有了leveldb数据、均值文件,就可以直接训练。要训练,需要把F:/li/li/caffe-windows里的整个“examples”文件夹拷到“F:/li/li/\bin”下,这里会用到“F:/li/li/bin/examples\cifar10”里面的“cifar10_quick_train_test.prototxt”打开修改为部分一共为四处地方如下面粗体字所示和“cifar10_quick_solver.prototxt”因为下的是CPU版本的caffe因此要把文件最后一行的”GPU”改成”CPU”,具体操作如下:
cifar10_quick_train_test.prototxt里
name: “CIFAR10_quick”
layer {
name: “cifar”
type: “Data”
top: “data”
top: “label”
include {
phase: TRAIN
}
transform_param {
mean_file: “examples/cifar10/mean.binaryproto”
}
data_param {
source: “examples/cifar10/cifar10_train_leveldb”
batch_size: 100
backend: LEVELDB
}
}
layer {
name: “cifar”
type: “Data”
top: “data”
top: “label”
include {
phase: TEST
}
transform_param {
mean_file: “examples/cifar10/mean.binaryproto”
}
data_param {
source: “examples/cifar10/cifar10_test_leveldb”
batch_size: 100
backend: LEVELDB
}
}
cifar10_quick_train_test.prototxt里
reduce the learning rate after 8 epochs (4000 iters) by a factor of 10
The train/test net protocol buffer definition
net: “examples/cifar10/cifar10_quick_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.001
momentum: 0.9
weight_decay: 0.004
The learning rate policy
lr_policy: “fixed”
Display every 100 iterations
display: 100
The maximum number of iterations
max_iter: 4000
snapshot intermediate results
snapshot: 4000
snapshot_format: HDF5
snapshot_prefix: “examples/cifar10/cifar10_quick”
solver mode: CPU or GPU
solver_mode: CPU
训练之前examples/cifar10/中有quick和full两种不同的训练模式,要一一对应。如果用“cifar10_quick_trian_test.prototxt”网络结构,那么在solver中就选择“cifar10_quick_solver.prototxt”。假如选择的网络“cifar10_full_train_test.prototxt”,那么solver应为“cifar10_full_solver.prototxt”。
在“F:/li/li/bin”这个路径下创建名为cifar3的bat文件,内容如下:
caffe.exe train
–solver=examples\cifar10\cifar10_quick_solver.prototxt pause
,然后双击运行。当显示Optimization Done.表示训练结束。
90分钟左右。。。
训练完成之后会在“F:/li/li/bin/examples\cifar10”这个路径下生成如下两个文件如下:
前者是分类器的描述文件,后者是继续学习会用到的文件。另外,还会生成一个分类网络文件如下: