Dl4j使用Spark分布式训练指定CPU后端训练


问题描述

1、打包dl4j应用程序,使用spark-submit在spark集群上分布式运行;
示例提交命令:

spark-submit --class cn.nd4jonSpark.Nd4jTest  --master spark://storm6:7077
    --deploy-mode client
    --driver-memory 4g
    --executor-memory 2g hdfs://ns1/spark_lib/Nd4jTestOnMllib-0.0.1-SNAPSHOT.jar > ../logs/err.log

2、Spark分布式集群上均无英伟达显卡,并且没有安装cuda;
3、dl4j应用打包中的pom文件,已经指定backend为nd4j-native-platform

但是在运行Spark分布式运行的时候,回去默认寻找cuda后端,尝试使用显卡进行分布式训练,导致报错:

WARN scheduler.TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, 10.100.2.10 , executor 8): java.lang.NoClassDefFoundError: Could not initialize class org.nd4j.linalg.factory.Nd4jat org.nd4j.Nd4jRegistrator.registerClasses(Nd4jRegistrator.java:20)at org.apache.spark.serializer.KryoSerializer$$anonfun$newKryo$6.apply(KryoSerializer.scala:135)....Caused by: java.lang.RuntimeException: No CUDA devices were found in system

解决方案

在官方文档 https://deeplearning4j.org/cn/gpu 中提到两个属性

这两个属性会决定dl4j应用程序使用什么样的后端进行模型的训练。

编辑 /spark/conf/spark_env.sh 文件,修改其中的环境变量(使用ssh将该文件传输到每一个worker机器上,更改其文件配置):

export BACKEND_PRIORITY_CPU=110
export BACKEND_PRIORITY_GPU=0

BACKEND_PRIORITY_CPU的值大于BACKEND_PRIORITY_GPU,就可以指定分布式集群中的每一个worker节点都是用CPU后端进行训练。

由群友 @赵彦辉-大连 发现并提供解决方案


更多文档可以查看 https://github.com/sjsdfg/deeplearning4j-issues。
欢迎star

Dl4j使用Spark分布式训练指定CPU后端训练相关推荐

  1. 第14课:Spark 分布式模型训练及调优(实战)

    上节课已经为大家介绍了 Apache Spark 项目的基本情况,以及分布式深度神经网络的解决方案.这节课我们将给出一个 Deeplearning4j+Spark 的建模实例,包括从配置 Maven ...

  2. 神经网络训练电脑配置,cpu可以训练神经网络吗

    神经网络参数如何确定 神经网络各个网络参数设定原则:①.网络节点 网络输入层神经元节点数就是系统的特征因子(自变量)个数,输出层神经元节点数就是系统目标个数.隐层节点选按经验选取,一般设为输入层节点数 ...

  3. TensorFlow指定CPU和GPU方法

    TensorFlow指定CPU和GPU方法 TensorFlow 支持 CPU 和 GPU.它也支持分布式计算.可以在一个或多个计算机系统的多个设备上使用 TensorFlow. TensorFlow ...

  4. python电脑配置要求cpu-python指定cpu使用率,与内存占用率

    """runing.py -c 2 -t 0.01 -m 1000 -c cpu核数,不加-c参数为最大核数 -t cpu运算频率时间,间隔,越小占用越高 -m 内存占用 ...

  5. Spark 分布式调试工具

    0. 说明 编写工具类,考察 Spark 分布式程序的执行地点 1. 工具类编写 [ JMX ] Java Management Extend , Java 管理扩展服务. 主要用于运维和监控. [测 ...

  6. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)

    ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...

  7. python调用gpu进行运算_tensorflow指定CPU与GPU运算的方法实现

    1.指定GPU运算 如果安装的是GPU版本,在运行的过程中TensorFlow能够自动检测.如果检测到GPU,TensorFlow会尽可能的利用找到的第一个GPU来执行操作. 如果机器上有超过一个可用 ...

  8. linux 下进程和线程指定CPU运行

    大概的介绍一下linux 的指定CPU运行,包括进程和线程,这个只是最基本的方法,看一下基本就会了,至于其他的进程间通信和线程同步的话,这里暂不做任何介绍. 算了,还是比较整体的介绍一下如何去学习这个 ...

  9. cpu 指定cpu执行 java_java程序可以实现在指定CPU上运行吗?

    java程序可以指定CPU运行吗?这是我以前遇到的一个面试问题,这两天又想起来了.一般我们都知道C.C++是可以实现程序指定CPU运行的,那么java到底可不可以呢?网上一部分人说可以,一部分人说不可 ...

最新文章

  1. vue 子级拿值_vue 父组件通过$refs获取子组件的值和方法详解
  2. Django 页面报错 Maximum recursion depth exceeded
  3. linux c代码出现段错误,Linux下段错误(C语言)
  4. 为什么企业宁愿花 15K 重新招人,也不愿意花 10K 留住老测试员?
  5. 第一次scrum冲刺!
  6. [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
  7. 联想计算机电源风扇怎样清理,电脑怎么清灰加硅脂 联想笔记本清灰换硅脂图文教程...
  8. 舌苔厚舌中间有裂缝,舌苔厚白,中间有裂缝主要是什么原因??
  9. 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
  10. 【C语言】'\0'、'0'、' '、“0”、0详解
  11. VM虚拟机 .vmdk文件,拆分多个文件,合并单个文件
  12. 表示微型计算机系统稳定性,计算机选择题
  13. [概率DP]相逢是温厚
  14. ksy是谁_丽水KSY-B-400/100防雷模块是谁家的
  15. 若A、B都是n阶正交阵,那么,A X B是正交阵吗?
  16. 程序员专属红包封面来了,一共四款
  17. 计算机可以谭音乐吗,谭真家乡类歌曲中的音乐意境分析
  18. 10-135 5-1 查询销售便携式电脑但不销售PC的厂商
  19. 『phphot』【SD2.0大会】刘振飞:微软Office研发成功三大法宝
  20. 计算机专业竞聘词150,计算机专业组长竞聘演讲稿范文

热门文章

  1. 博图V14安装(无图流程)S7-1200
  2. 离散数学期末基础知识点复习
  3. AUTOCAD学习笔记6:单相桥式整流电路的绘制
  4. JAVA爬虫框架WebMagic爬取ajax请求的页面数据
  5. ubuntu 安装OpenCV3版本后安装OpenCV4,且多版本共存
  6. 学成在线 课程列表 页面
  7. 乱码问题之文件,文本文件以及编码
  8. 电商后台开发之商品规格组合算法
  9. 组合数学——二项式反演
  10. 中国医科大学计算机基础与应用,中国医科大学《计算机基础与应用》在线作业...