前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rstudio Server + Docker + tensorflowR - 云端安装与使用R语言与GPU深度学习

Rstudio Server + Docker + tensorflowR - 云端安装与使用R语言与GPU深度学习

作者头像
悟乙己
发布2019-05-26 10:09:54
2K0
发布2019-05-26 10:09:54
举报
文章被收录于专栏:素质云笔记

版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/82880021

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


文章目录

  • 1 准备阶段
  • 2 Rstudio Server nvidia-docker 环境
    • 2.1 docker初始化的问题
    • 2.2 docker中文环境布置问题
  • 3 Rstudio Server的部署
    • 3.1 启动
    • 3.2 添加用户组
  • 4 R语言与tensorflow + keras
    • 4.1 安装
    • 4.2 占用指定显存容量
    • 4.3 模型

1 准备阶段

来看看要准备一些什么:

安装docker

代码语言:javascript
复制
curl -sSL https://get.docker.com/ | sh1

安装Nvidia Docker

代码语言:javascript
复制
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb12

通过以下命令来检验是否成功:

代码语言:javascript
复制
nvidia-docker run --rm nvidia/cuda nvidia-smi

2 Rstudio Server nvidia-docker 环境

在项目pbhogale/gpu-keras-rstudio中有非常棒的环境已经写好,大致的环境为:nvidia/cuda:9.0-cudnn7-runtime

2.1 docker初始化的问题

但是由于在阿里云上对接github上很多资源下载会出现time out; 也会出现因为版本问题而无法下载的,在笔者调试了很多次下该Dockerfile是可以把环境部署好的(下载链接),但是需要自己在docker里面自己装keras:tensorflow。

把笔者提供的Dockerfile替换一下gpu-keras-tidyverse文件夹下的文件。 其中需要注意的有,注意点一:

代码语言:javascript
复制
RUN set -e \
    && useradd -m -d /home/rstudio rstudio \
    && echo rstudio:rstudioTheLegendOfZelda \
    | chpasswd \
    && apt-get -y autoremove \
    && apt-get clean

这个代表了设置rstudio的初始密码,好吧… 这个docker默认设置有点调皮,密码好长… 账号为:rstudio 密码为:rstudioTheLegendOfZelda

注意点二:

代码语言:javascript
复制
RUN set -e \
    && grep '^DISTRIB_CODENAME' /etc/lsb-release \
    | cut -d = -f 2 \
    | xargs -I {} echo "deb ${CRAN_URL}bin/linux/ubuntu {}/" \
    | tee -a /etc/apt/sources.list \
    && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 \
	&& apt-get update \
    && apt-get upgrade -y -q \
    && pip install --upgrade pip==9.0.3 \
    && pip install virtualenv \
    && pip install pelican \
    && rm -rf .cache \
    && echo 'options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))' >> /etc/R/Rprofile.site \
    && /usr/lib/R/site-library/littler/examples/install.r tensorflow keras \
	&& r -e "install.packages(c('devtools', 'xgboost', 'tidyverse', 'rmarkdown', 'greta', 'usethis', 'docopt'))" \
    && apt-get -y autoremove \
    && apt-get clean

options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))这个如果是阿里云需要改成清华的镜像,不然基本下载不了。

2.2 docker中文环境布置问题

启动docker + r server会发现中文读入不了,笔者加载了 Sys.setlocale("LC_ALL", 'en_US.UTF-8')Sys.setlocale() 有以下几个问题:原因是系统里面没有utf-8的locale。

代码语言:javascript
复制
Warning message:
In Sys.setlocale("LC_ALL", "Chinese") :
  OS reports request to set locale to "Chinese" cannot be honored

以及

代码语言:javascript
复制
Warning message:
Character set is not UTF-8; please change your locale

需要在docker环境下安装locale,可参考:

代码语言:javascript
复制
locale-gen en_US.UTF-8
apt-get install language-pack-zh-hant-base language-pack-zh-hans-base

参考: Ubuntu 安装和启用中文 修改locale 比较来说,在/etc/default/locale文件最好使用以下:

代码语言:javascript
复制
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

3 Rstudio Server的部署

3.1 启动

代码语言:javascript
复制
   #查看是否安装正确 
    sudo rstudio-server verify-installation 
    ## 启动 
    sudo rstudio-server start 
    ## 查看状态 
    sudo rstudio-server status 
    ## 停止 
    sudo rstudio-server stop 
    ## 重启
    sudo rstudio-server restart
    ## 查看服务端ip地址 
    ifconfig

3.2 添加用户组

代码语言:javascript
复制
    ##添加用户组
    sudo groupadd rstudio-group
    ##添加用户
    sudo useradd anlan -g rstudio-group
    ##设置用户密码
    sudo passwd xxxxxx
    ##创建用户目录
    sudo mkdir /home/anlan
    ##赋予目录权限
    sudo chown -R anlan:rstudio-group /home/anlan

但是如果是在docker之中使用,笔者一直发现一个问题,就是添加不了用户,一直报错:

代码语言:javascript
复制
RSTUDIO INITIALIZATION ERROR: UNABLE TO CONNECT TO SERVICE

解决办法是: 参考:解決登入 Docker 的 RStudio 遇到錯誤 RStudio Initialization Error: Unable to connect to service

  • 只登陆一个账号,一般为rstudio:rstudio,此处如果是默认的docker的话,即为:rstudio:rstudioTheLegendOfZelda
  • 第二种是在docker启动的时候,就为设置账号和密码(笔者实验好像无效):
代码语言:javascript
复制
docker run -d -p 8787:8787 -e USER=<username> -e PASSWORD=<password> rocker/rstudio

4 R语言与tensorflow + keras

4.1 安装

有了以上的环境,那么来看一下R之中使用keras/tensorflow,如果要使用简单的keras,需要先加载Keras,然后使用keras下载tensorflow。

代码语言:javascript
复制
install.packages("devtools")
devtools::install_github("rstudio/keras")
library(keras)
install_tensorflow(gpu=TRUE)

其中install_tensorflow()install_keras()有几个参数:

代码语言:javascript
复制
# 函数一: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) 

Method

Description

auto

Automatically choose an appropriate default for the current platform.

virtualenv

Install into a Python virtual environment at ~/.virtualenvs/r-tensorflow

conda

Install into an Anaconda Python environment named r-tensorflow

system

Install into the system Python environment

一些控制版本:

代码语言:javascript
复制
# tensorflow
install_tensorflow(version = "1.0.0")
install_tensorflow(method = "conda")
install_tensorflow(version = "nightly-gpu")  # gpu version
install_tensorflow(version = "gpu")  # gpu version

# keras
library(keras)
install_keras(tensorflow = "1.2.1")
install_keras(tensorflow = "1.2.1-gpu")
install_keras(method = "conda")

那么大体来说,py的版本控制,好像没有特别的参数与控制,一般默认是py2的tensorflow,其中在install_tensorflow()

代码语言:javascript
复制
python_versions <- py_versions_windows()

4.2 占用指定显存容量

这边如果在使用tf的时候,会出现一下子把显存全部占满的情况,则需要控制一下,笔者只是照搬了py的稍微改一下,没想到能用,分享给大家。

代码语言:javascript
复制
library(tensorflow)
config = tf$ConfigProto()
config$gpu_options$per_process_gpu_memory_fraction = 0.3
tf$Session(config=config)

4.3 模型

这边就不举例了,在很多地方都有:

Keras for R: https://blog.rstudio.com/2017/09/05/keras-for-r/


可参考: Installing TensorFlow https://github.com/rstudio/keras https://github.com/rstudio/tensorflow

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年09月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1 准备阶段
  • 2 Rstudio Server nvidia-docker 环境
    • 2.1 docker初始化的问题
      • 2.2 docker中文环境布置问题
      • 3 Rstudio Server的部署
        • 3.1 启动
          • 3.2 添加用户组
          • 4 R语言与tensorflow + keras
            • 4.1 安装
              • 4.2 占用指定显存容量
                • 4.3 模型
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档