Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow

Posted 素质云笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow相关的知识,希望对你有一定的参考价值。

Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow

笔者想在阿里云上部署nvidia - docker + Rstudio Server,然后使用R语言来进行深度学习。本篇是在该过程中产生的经验之谈。

详细经验可戳 原文阅读 看细节~

Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow


Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow

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


Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow

2 Rstudio Server的部署


R Server的部署就不累述了,但是笔者在使用docker部署的时候总是不能设置新的账号,报错:


RSTUDIO INITIALIZATION ERROR: UNABLE TO CONNECT TO SERVICE


暂时解决办法可戳原文阅读。



Rstudio Server+ Docker 中部署GPU版本的keras+tensorflow

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 可访问的本地卷

RStudio Server CentOS 错误 ELF 类

从 RStudio 发布到本地 Shiny Server

Ubuntu 14.04上安装和配置Rstudio-Server