Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow
Posted 素质云笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow相关的知识,希望对你有一定的参考价值。
笔者想在阿里云上部署nvidia - docker + Rstudio Server,然后使用R语言来进行深度学习。本篇是在该过程中产生的经验之谈。
详细经验可戳 原文阅读 看细节~
1 Rstudio Server nvidia-docker 环境
在项目pbhogale/gpu-keras-rstudio中有非常棒的环境已经写好的docker环境,cuda/cudnn的环境为:nvidia/cuda:9.0-cudnn7-runtime
1.1 docker初始化的问题
但是由于在阿里云上对接github上很多资源下载会出现time out;
也会出现因为版本问题而无法下载的,所以需要看客自己手动调整一下dockerfile
1.2 docker中文环境布置问题
启动docker + r server会发现中文读入不了,笔者加载了
Sys.setlocale("LC_ALL", 'en_US.UTF-8') 或 Sys.setlocale()
有以下几个问题:原因是系统里面没有utf-8的locale。
需要在docker环境下安装locale,可参考:
locale-gen en_US.UTF-8
apt-get install language-pack-zh-hant-base language-pack-zh-hans-base
2 Rstudio Server的部署
R Server的部署就不累述了,但是笔者在使用docker部署的时候总是不能设置新的账号,报错:
RSTUDIO INITIALIZATION ERROR: UNABLE TO CONNECT TO SERVICE
暂时解决办法可戳原文阅读。
3 R语言与tensorflow + keras
有了以上的环境,那么来看一下R之中使用keras/tensorflow,如果要使用简单的keras,需要先加载Keras,然后使用keras下载tensorflow。
其中install_tensorflow()与install_keras()有几个参数:
# 函数一:install_keras install_keras <- function(method = c("auto", "virtualenv", "conda"), conda = "auto", tensorflow = "default", extra_packages = c("tensorflow-hub")) # 函数二:install_tensorflow install_tensorflow <- function(method = c("auto", "virtualenv", "conda", "system"), conda = "auto", version = "default", envname = "r-tensorflow", extra_packages = c("keras", "tensorflow-hub"), restart_session = TRUE)
其中下载的本质还是先下载了py-tf-gpu,然后调用,其中py的版本控制,好像没有特别的参数与控制,一般默认是py2的tensorflow
4 占用指定显存容量
这边如果在使用tf的时候,会出现一下子把显存全部占满的情况,则需要控制一下,笔者只是照搬了py的稍微改一下,没想到能用,分享给大家。
library(tensorflow) config = tf$ConfigProto() config$gpu_options$per_process_gpu_memory_fraction = 0.3 tf$Session(config=config)
5 一些keras/tensorflow+R的代码
不累述这些练习代码了,可见: https://blog.rstudio.com/2017/09/05/keras-for-r/
以上是关于Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow的主要内容,如果未能解决你的问题,请参考以下文章
Docker部署Rstudio Server【三】:docker容器管理初步
Docker部署Rstudio Server【四】:订制自己的个性化镜像
在 docker (tidyverse) 中挂载 R/RStudio 可访问的本地卷