Caffe虚拟机运行(一)

    • 1.Ubuntu依赖包安装
    • 2.Caffe下载及安装
      • A&Q:
    • 3.训练库与测试库下载
      • A&Q:
    • 4.测试
      • 4.1下载数据集
      • 4.2转换格式
      • 4.3训练网络
      • 4.4测试训练好的模型

1.Ubuntu依赖包安装

Ubuntu版本14.04

sudo apt-get install git
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.Caffe下载及安装

下载并备份Makefile文件

git clone https://github.com/bvlc/caffe.git
cd caffe/
mv Makefile.config.example Makefile.config
make -j

修改Makefile.config,由于虚拟机内没有GPU可以运行,所以打开CPU_ONLY选项,只使用CPU模式。(去掉下边代码的#号)

CPU_ONLY  :=1

A&Q:

  1. 虚拟机卡死问题
    一个字,等、、、
  2. 无法识别文件: 文件被截断
wy@wy-virtual-machine:~/caffe$ make -j4
LD -o .build_release/lib/libcaffe.so.1.0.0
.build_release/src/caffe/syncedmem.o:无法识别文件: 文件被截断
collect2: error: ld returned 1 exit status
make: *** [.build_release/lib/libcaffe.so.1.0.0] 错误 1
这是由于上次编译残留文件,导致这次报错,此时只需运行后重新编译
make clean

3.cc: 内部错误:已杀死 (程序 cc1)
目前本人遇到这种情况为资源虚拟机资源不够用,将虚拟机CPU由1核改为4核,内存由4G改为8G后可正常编译。

3.训练库与测试库下载

cd data/cifar10
./get_cifar10.sh
cd
cd caffe
./examples/cifar10/create_cifar10.sh

Caffe虚拟机运行(一)_第1张图片
Caffe虚拟机运行(一)_第2张图片

A&Q:

bash: ./create_cifar.sh: 没有那个文件或目录
测试库的下载需要从根目录执行。

4.测试

我们来跑一个手写识别的训练看看能否正常工作

4.1下载数据集

cd data/mnist/
./get_mnist.sh

4.2转换格式

下载到的数据集为二进制文件,需要转换为LMDB或LEVELDB才能被Caffe识别。

./examples/mnist/create_mnist.sh
Creating lmdb...
Done.

4.3训练网络

目前系统还不支持GPU运行,修要将训练网络改成CPU模式。将examples/mnist/lenet_solver.prototxt最后一行修改如下

# solver mode: CPU or GPU
solver_mode: CPU

运行examples/mnist/train_lenet.sh脚本

./examples/mnist/train_lenet.sh

训练的最终结果保存在examples/mnist/lenet_iter_10000.caffemodel中。

4.4测试训练好的模型

./build/tools/caffe.bin test \
-model examples/mnist/lenet_train_test.prototxt \
-weights examples/mnist/lenet_iter_10000.caffemodel \
-iterations 100

命令行参数:

  • test 表示只做预测
  • -model examples/mnist/lenet_train_test.prototxt 指定模型描述文件
  • -weights examples/mnist/lenet_iter_10000.caffemodel 指定训练好的权值文件
  • iterations 100 指定测试迭代次数,每次迭代的数据量在模型描述文件中设定batch_size: 100,迭代100次刚好覆盖测试集的10000个样本

你可能感兴趣的:(机器学习)