CaffeOnSpark安装和使用教程系列二:单节点使用CaffeOnSpark进行MNIST数据集的测试
来源:互联网 发布:网络数据库类型有哪些 编辑:程序博客网 时间:2024/06/02 03:38
说明:Yahoo在Github中给出了在Spark的单节点中CaffeOnSpark的简单安装和测试教程:
https://github.com/yahoo/CaffeOnSpark/wiki/GetStarted_standalone
但该教程只能作为参考,完全按照教程中的操作会出现一堆莫名其妙的问题。
1、确保CaffeOnSpark已经正确安装。
2、确保Hadoop和Spark集群已经正确部署。
3、下载MNIST数据集
进入CaffeOnSpark的主目录,执行如下指令:
sudo ./scripts/setup-mnist.sh
注:通过指令可以看到CaffeOnSpark的所有者为root,即普通的用户对CaffeOnSpark目录下的所有文件都没有写权限,这点非常重要。如果不注意这点,后续也会遇到权限问题的错误。使用“ls -l”指令可以查看CaffeOnSpark的详细权限信息。
4、修改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下这两个资源文件的路径。
5、修改CaffeOnSpark/data/lenet_memory_solver.prototxt文件:
将“net”中lenet_memory_train_test.prototxt路径信息修改为绝对路径;
去掉“solver_mode:CPU”前边的“#”
6、导入临时环境变量
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 MASTER_URL=spark://master:7077
export SPARK_WORKER_INSTANCES=1
export CORES_PER_WORKER=1
export TOTAL_CORES=$((${CORES_PER_WORKER}*${SPARK_WORKER_INSTANCES}))
export CAFFE_ON_SPARK=/home/cluster/software/CaffeOnSpark
7、执行CaffeOnSpark示例程序
在Spark集群中输入如下指令:
spark-submit
--master spark://master:7077
--num-executors ${SPARK_WORKER_INSTANCES}
--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
-conf ${CAFFE_ON_SPARK}/data/lenet_memory_train_test.prototxt
-devices 1
-connection ethernet
-model hdfs:///mnist.model
-output hdfs:///mnist_features_result
注:在程序执行过程中,可通过spark://master:8080查看正在执行任务的信息。
通过标准输出(stderr)日志信息,可以看到MNIST数据集的训练过程:
8、查看运行结果
由于设定训练的模型和特征结果保存在HDFS上,因此通过以下指令查看结果:
hadoop fs -ls /
前两个为得到的最终结果,后边四个分别为迭代1000次和2000的快照信息。
通过以下指令可以查看最终得到的特征文件的具体内容信息:
hadoop fs -cat hdfs:///mnist_features_result/*
注:在lenet_memory_solver.prototxt中指定最大迭代次数为2000次,且每1000次打印一次快照,因此在结果文件中有1000和2000次迭代的信息:
- CaffeOnSpark安装和使用教程系列二:单节点使用CaffeOnSpark进行MNIST数据集的测试
- CaffeOnSpark安装和使用教程系列三:集群环境下使用CaffeOnSpark进行MNIST数据集的测试
- CaffeOnSpark安装和使用教程系列一:CaffeOnSpark的安装
- caffeonspark
- CaffeOnSpark 安装遇到的一系列问题
- Ubuntu配置Caffeonspark教程
- CaffeOnSpark 安装笔记 可以正常运行
- Fastdfs 单节点安装使用教程整理
- CaffeOnSpark in Ubuntu 15.04
- 分布式深度学习 CaffeOnSpark
- 关于CaffeOnSpark 集群效率低下的问题解决方案
- Caffe基础系列【一】MNIST数据集的测试
- CoffeeScript系列教程(二)—安装和使用
- activemq使用系列: linux环境下ActiveMQ 的安装与使用(单节点)
- 使用libsvm对MNIST数据集进行实验
- 使用KNN对MNIST数据集进行实验
- 使用Decision Tree对MNIST数据集进行实验
- 使用tensorflow对Mnist数据集进行字体识别
- Uity开发随笔(一)
- C与lua
- 制作initramfs/initrd镜像
- 10.重载示例(上)
- HDU3974-Assign the task(线段树+区间建树)
- CaffeOnSpark安装和使用教程系列二:单节点使用CaffeOnSpark进行MNIST数据集的测试
- c++与lua
- 【C#机房重构】命名空间"Microsoft"中不存在类型或命名空间名称"Office"(是否缺少程序引用?)
- 安装完jdk,重新部署项目启动时,提示找不到jre解决方案
- UVa 11384 Help is needed for Dexter——思路题
- Java8-流-用流收集数据和并行流
- 交换机与路由器
- velocity的使用
- (128)放置光源