SKIL/配置/内存设置

59 篇文章 0 订阅

内存设置

神经网络需要内存,而更雄心勃勃的SKIL项目将需要更多的内存分配给SKIL和笔记本。通常,内存不足是作为java.lang.OutOfMemoryError出现的,并且知道如何更改内存设置可以在将来防止这种情况发生。

环境变量

要解决Zeppelin(笔记本后面的系统)中的内存问题,请增加可用的JVM RAM数量。Zeppelin的默认配置在JVM上提供8GB的RAM和4GB的堆外空间。你可以通过更改默认DEFAULT_ZEPPELIN_JVM_ARGS环境变量并删除“进程”选项卡中的Zeppelin解释器进程来扩展这些参数。

设置此变量有两种方法:

  • 启动SKIL Docker容器时指定-e
  • 把它添加到 /etc/skil/skil-env.sh (或 /etc/profile.d/skil-env.sh 如果 /etc/skil-env.sh 不存在)

如果你有一个GPU(如K80),那么以下几行足以使你的系统最大化:

Shell

DEFAULT_ZEPPELIN_JVM_ARGS=-Xmx16g -Dorg.bytedeco.javacpp.maxbytes=16G -Dorg.bytedeco.javacpp.maxphysicalbytes=16G -Dorg.nd4j.versioncheck=false -Dorg.deeplearning4j.config.custom.enabled=false

更新设置后,需要重新启动SKIL。如果你安装了bare-metal SKIL:

Shell

sudo systemctl stop skil
sudo systemctl start skil

否则,你需要docker exec进入SKIL docker实例并从bash实例重新启动它。

 

Docker 内存

在某些情况下,除了其他调整之外,你可能还需要确保Docker在运行时有足够的内存。Windows和OSX上的Docker在用户界面中内置了这些功能。如果在Linux或服务器上运行并使用Docker CLI,则可以将值传递给--memory 标记。请注意,这通常用于限制内存。
你可以在Docker网站上阅读更多内容。

 

常见错误

通常,当一个SKIL工作间或实验受到内存限制时,它会显示为类似于:

Scala

java.lang.OutOfMemoryError: Cannot allocate new DoublePointer(100000000): totalBytes = 588M, physicalBytes = 4G
	at org.bytedeco.javacpp.DoublePointer.<init>(DoublePointer.java:76)
	at org.nd4j.linalg.api.buffer.BaseDataBuffer.<init>(BaseDataBuffer.java:549)
	...

取决于你的代码中使用的NDArray的数据类型,这也可能与FloatPointers一起出现,或者在内存释放期间出现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值