CaffeOnSpark安装和使用教程系列三:集群环境下使用CaffeOnSpark进行MNIST数据集的测试
来源:互联网 发布:985 211 区别知乎 编辑:程序博客网 时间:2024/06/05 02:51
说明:Yahoo在Github中给出了在Hadoop Yarn集群中CaffeOnSpark的简单安装和测试教程:(集群环境和单节点有很多重复步骤,废话比较多)
https://github.com/yahoo/CaffeOnSpark/wiki/GetStarted_yarn
但该教程只能作为参考,完全按照教程中的操作会出现一堆莫名其妙的问题。
1、确保CaffeOnSpark已经正确安装。
2、确保Hadoop和Spark集群已经正确部署。
3、配置Spark on Yarn
修改Spark的spark-env.sh配置文件:
cd /home/cluster/software/spark-1.6.0-bin-hadoop2.6/conf
vim spark-env.sh
添加如下配置信息:
export YANR_CONF_DIR=
/home/cluster/software/hadoop-2.6.4/etc/hadoop
export SPARK_LOCAL_DIRS=
/home/cluster/software/spark-1.6.0-bin-hadoop2.6
export SPARK_YARN_USER_ENV=
"CLASSPATH=/home/cluster/software/hadoop-2.6.4/etc/hadoop"
将spark-env.sh配置文件发送到集群的其他节点:
scp -r spark-env.sh cluster@slave1:
/home/cluster/software/spark-1.6.0-bin-hadoop2.6/conf/
scp -r spark-env.sh cluster@slave2:
/home/cluster/software/spark-1.6.0-bin-hadoop2.6/conf/
4、下载MNIST数据集
进入CaffeOnSpark的主目录,执行如下指令:
sudo ./scripts/setup-mnist.sh
注:通过指令可以看到CaffeOnSpark的所有者为root,即普通的用户对CaffeOnSpark目录下的所有文件都没有写权限,这点非常重要。如果不注意这点,后续也会遇到权限问题的错误。使用“ls -l”指令可以查看CaffeOnSpark的详细权限信息。
5、修改CaffeOnSpark/data/lenet_memory_train_test.prototxt文件:
sudo vim lenet_memory_train_test.prototxt
注:在该文件中主要是修改训练和测试数据的路径信息,教程中给出的资源路径为:
查看发现在CaffeOnSpark/data目录下确实有mnist_test_lmdb和mnist_train_lmdb两个资源文件:
但由于前文介绍的,只有root用户对CaffeOnSpark有操作权限,因此若在lenet_memory_train_test.prototxt文件中传入CaffeOnSpark/data下的这两个资源文件,在执行过程中会出现“Permission Denied”的错误!
因此,在software新建一个所有者为普通用户的文件夹test,将mnist_test_lmdb和mnist_train_lmdb这两个资源文件拷贝到该文件夹下,在lenet_memory_train_test.prototxt中传入test下这两个资源文件的路径。
6、修改CaffeOnSpark/data/lenet_memory_solver.prototxt文件:
将“net”中lenet_memory_train_test.prototxt路径信息修改为绝对路径;
去掉“solver_mode:CPU”前边的“#”
7、导入临时环境变量
export LD_LIBRARY_PATH=${CAFFE_ON_SPARK}/caffe-public/distribute/lib:${CAFFE_ON_SPARK}/caffe-distri/distribute/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-7.0/lib64:/usr/local/mkl/lib/intel64/
export CAFFE_ON_SPARK=/home/cluster/software/CaffeOnSpark
8、执行CaffeOnSpark示例程序
在Spark集群中输入如下指令:
spark-submit
--master yarn --deploy-mode client
--num-executors 1
--files ${CAFFE_ON_SPARK}/data/lenet_memory_solver.prototxt,${CAFFE_ON_SPARK}/data/lenet_memory_train_test.prototxt
--conf spark.driver.extraLibraryPath="${LD_LIBRARY_PATH}"
--conf spark.executorEnv.LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"--class com.yahoo.ml.caffe.CaffeOnSpark
${CAFFE_ON_SPARK}/caffe-grid/target/caffe-grid-0.1-SNAPSHOT-jar-with-dependencies.jar
-train
-features accuracy,loss
-label label
-conf ${CAFFE_ON_SPARK}/data/lenet_memory_solver.prototxt
-devices 1
-connection ethernet
-model hdfs:///mnist_cluster/mnist.model
-output hdfs:///mnist_cluster/mnist_features_result
9、查看运行结果
由于设定训练的模型和特征结果保存在HDFS上,因此可以在Hadoop的监控页面看到如下信息:
前两个为得到的最终结果,后边四个分别为迭代1000次和2000的快照信息。
通过以下指令可以查看最终得到的特征文件的具体内容信息:
hadoop fs -cat hdfs:///mnist_cluster/mnist_features_result/*
注:在lenet_memory_solver.prototxt中指定最大迭代次数为2000次,且每1000次打印一次快照,因此在结果文件中有1000和2000次迭代的信息:
- CaffeOnSpark安装和使用教程系列三:集群环境下使用CaffeOnSpark进行MNIST数据集的测试
- CaffeOnSpark安装和使用教程系列二:单节点使用CaffeOnSpark进行MNIST数据集的测试
- CaffeOnSpark安装和使用教程系列一:CaffeOnSpark的安装
- caffeonspark
- CaffeOnSpark 安装遇到的一系列问题
- Ubuntu配置Caffeonspark教程
- 关于CaffeOnSpark 集群效率低下的问题解决方案
- CaffeOnSpark 安装笔记 可以正常运行
- caffeOnSpark遇到的问题,没有解决,Caffe.java是从哪儿出来的?请教下大家
- 环境安装系列 - Linux下 Redis的安装和使用
- CaffeOnSpark in Ubuntu 15.04
- 分布式深度学习 CaffeOnSpark
- Caffe基础系列【一】MNIST数据集的测试
- 在ubuntu16.04+opencv3.0环境下使用mnist手写体数据集编写相关程序
- 使用libsvm对MNIST数据集进行实验
- 使用KNN对MNIST数据集进行实验
- 使用Decision Tree对MNIST数据集进行实验
- 使用tensorflow对Mnist数据集进行字体识别
- JS高级---原型链(一看就懂,但18岁以下请绕道)
- 数据结构——C1.1 数据结构的概念
- 一些访谈
- 游戏的物理和数学:Unity中的弹道和移动目标提前量计算
- python学习之——常见错误汇总
- CaffeOnSpark安装和使用教程系列三:集群环境下使用CaffeOnSpark进行MNIST数据集的测试
- Java 生成二维码
- 格式化大于16TB的分区为ext4遇到的挫折
- 免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
- LeetCode 404. Sum of Left Leaves (二叉树,递归)
- 使用jxl导出数据到excel中
- 高通Thermal Overview之thermal-engine
- ubuntu16.04 开wifi热点
- java 读取二维码