热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[RL]使用dockerfile构建atari环境

强化学习需要atari环境,使用dockerfile快速构建。下载ROMSwgethttp:www.atarimania.comromsRoms.rarunra

强化学习需要 atari 环境,使用 dockerfile 快速构建。

下载 ROMS

wget http://www.atarimania.com/roms/Roms.rar
unrar -e Roms.rar
unzip ROMS.zip

创建文件夹 dockerbuild/

mkdir dockerbuild && cd dockerbuild
cp -r ../ROMS/ .
vim my.dockerfile

复制以下内容,ubuntu20.04+cu112+python3.8,大小为 10 G。

FROM nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04MAINTAINER Jiale HanSHELL ["/bin/bash","-c"]WORKDIR /rootADD ROMS/ ROMS/RUN apt update \&& apt install -y python3 python3-pip tmux \&& pip install opencv-python matplotlib gym atari-py ale-py \&& python3 -m atari_py.import_roms ROMS/ \&& apt install -y libgl1-mesa-glx \&& DEBIAN_FRONTEND=noninteractive apt install -y libglib2.0-dev \&& apt clean

或者下面这个,ubuntu18.04+cu102+python3.7+virtualenv+pytorch1.82,大小为 2 G。

FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04MAINTAINER Jiale HanSHELL ["/bin/bash", "-c"]WORKDIR /root/ENV LANG C.UTF-8RUN apt update && \# install python3.7apt install -y software-properties-common && \add-apt-repository -y ppa:deadsnakes/ppa && \apt install -y python3.7 python3.7-distutils python3.7-dev && \apt install -y vim tmux wget && \# install virtualenv & virtualenvwrapperwget https://bootstrap.pypa.io/get-pip.py && \python3.7 get-pip.py && \pip install virtualenv virtualenvwrapper && \sed -i 's/which python/which python3.7/g' `which virtualenvwrapper.sh` && \echo -e "\n# virtualenvwrapper" >> .bashrc && \echo "export WORKON_HOME=/root/.virtualenvs" >> .bashrc && \echo "export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`" >> .bashrc && \echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.7" >> .bashrc && \echo "source `which virtualenvwrapper.sh`" >> .bashrc && \apt clean && \rm get-pip.pyCOPY ROMS/ /root/ROMS/RUN source `which virtualenvwrapper.sh` && \mkvirtualenv py37 && \workon py37 && \pip install opencv-python matplotlib ipython && \pip install gym ale-py && \ale-import-roms ROMS/ && \deactivate && \apt install -y libgl1-mesa-glx libglib2.0-dev && \apt clean && \rm -rf ROMS/COPY .oh-my-zsh/ /root/.oh-my-zsh/RUN apt install -y zsh && \cp .oh-my-zsh/templates/zshrc.zsh-template .zshrc && \sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/g' .zshrc && \echo -e "\n# virtualenvwrapper" >> .zshrc && \echo "export WORKON_HOME=/root/.virtualenvs" >> .zshrc && \echo "export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`" >> .zshrc && \echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.7" >> .zshrc && \echo "source `which virtualenvwrapper.sh`" >> .zshrc && \chsh -s $(which zsh) && \apt cleanCOPY id_rsa.pub /root/.ssh/id_rsa.pubRUN apt install -y openssh-server && \cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && \chmod 600 /root/.ssh/authorized_keys && \sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' \/etc/ssh/sshd_config && \sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' \/etc/ssh/sshd_config && \sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin prohibit-password/g' \/etc/ssh/sshd_config && \apt cleanEXPOSE 22COPY init.sh /root/init.shENTRYPOINT ["/bin/zsh", "init.sh"]

使用镜像运行容器后,

启动 ssh 服务

service ssh restart

安装 pytorch1.8.2

pip install torch==1.8.2+cu102 torchvision==0.9.2+cu102 \-f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
pip install 'ray[rllib]' tensorboard==1.15

或者把 nvidia/cuda:10.2 改成 nvidia/cuda:10.0,使用镜像运行容器后,安装 tensorflow1.15

pip install tensorflow-gpu==1.15
pip install 'ray[rllib]'

如果要运行框架

export HOROVOD_GPU_OPERATIONS=NCCL
apt install git cmake g++
pip install influxdb psutil pyzmq pyarrow horovod

conda 镜像

FROM nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04MAINTAINER Jiale HanSHELL ["/bin/bash","-c"]WORKDIR /rootRUN apt update \&& apt install -y vim cmake tmux wget \&& wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh \&& echo -e "\nexport export HOROVOD_GPU_OPERATIONS=NCCL" >> .bashrc \&& apt install -y libgl1-mesa-glx libglib2.0-dev git\&& apt clean \

构建镜像

cd dockerbuild/
docker build -t nvidia/cuda:cu100-ubu18-rl-zsh -f tf1.dockerfile .

从镜像运行容器

docker run -it -v /data2/hanjl:/root/code/ \-p 0.0.0.0:2200:22 -p 0.0.0.8000:80 \--gpus '"device=1,2"' --name hjl_test \nvidia/cuda:cu100-ubu18-rl-zsh /bin/zsh

推荐阅读
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • python3.7 安装pip3_python3的pip3安装
    ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
author-avatar
php小盗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有