tensorflow和pytorch官方都维护了不同版本的docker镜像。借助docker我们可以方便的搭建起深度学习实验环境。

但是想要在同一个容器内同时拥有tensorflow、pytorch、jupyter notebook 并支持GPU,就需要自己来动手了。

硬件环境:

华硕b450主板
AMD r7 2700 CPU
NVIDIA 2060 RTX显卡
16G内存

软件环境:

ubuntu 18.10
docker ce 18.09.3
nvidia驱动:nvidia-driver-418

配置思路:

基于tensorflow + gpu + jupyter镜像,再在容器内安装pytorch即可。

开始动手:

1、到Docker Hub找一个合适的docker镜像:

就用nightly-gpu-py3-jupyter了, 拉下来

docker pull tensorflow/tensorflow:nightly-gpu-py3-jupyter

2、参考tensorflow官方教程。要在docker内使用gpu,首先需要在host环境下安装nvidia-docker。

官方教程: https://www.tensorflow.org/install/docker

nvidia-docker项目地址:NVIDIA/nvidia-docker

注意:nvidia-docker对系统docker版本的要求极为严格,请仔细检查兼容性。

提示:为了不必要的麻烦,我直接重新安装了nvidia官方推荐的docker版本。(由于nvidia-docker尚不支持ubuntu18.10 Cosmic Cuttlefish,我安装的docker ce是适配18.04 Bionic Beaver的版本--> Index of linux/ubuntu/dists/bionic/pool/stable/amd64/)

docker安装教程,请参考:Get Docker CE for Ubuntu

3、如果一切正常,安装完成nvidia-docker后就可以在docker容器内使用gpu了。

测试一下: docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

注意 --runtime=nvidia是必须的,否则容器内检测不到GPU

4、启动tensorflow/tensorflow:nightly-gpu-py3-jupyter,就可以拥有一个支持tensorflow+GPU+jupyter notebook的实验环境了:

docker run --runtime=nvidia --name tf --rm -it -v /home/helo/data/tf:/tf -p 8888:8888 tensorflow/tensorflow:nightly-gpu-py3-jupyter

访问localhost:8888,输入token就能进入jupyter notebook了

检查一下GPU是否工作正常:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

5、添加pytroch支持

稍微修改一下刚才的docker run命令,让容器启动在后台。

docker run --runtime=nvidia --name tf -dt -v /home/helo/data/tf:/tf -p 8888:8888 tensorflow/tensorflow:nightly-gpu-py3-jupyter

使用docker exec命令进入容器内:

docker exec -it tf bash

安装pytorch:

pytorch官方安装教程:PyTorch

需要检查一下容器内python和cuda的版本:

python --version
nvcc --version

根据pytorch官方提示完成安装

6、检测pytorch是否安装成功(可能需要重启容器)

import torch
if torch.cuda.is_available():device = torch.device("cuda")          # a CUDA device objecty = torch.ones_like(x, device=device)  # directly create a tensor on GPUx = xto photography and illustration competition(device)                       # or just use strings ``.to("cuda")``z = x + yprint(z)print(Denise and Gary Zimmerman's Home On The Web("cpu", torch.double))      

至此,基于docker的深度学习实验环境就配置完成了。记得docker commit一下。

补充:也可以在jupyter内的Terminal上完成pytorch安装

https://cloud.docker.com/repository/docker/roughwin/ml

nvidia docker容器不支持中文的解决办法_用docker搭建深度学习实验环境相关推荐

  1. JqueryQrcode生成二维码不支持中文的解决办法

    JqueryQrcode.js有一个小小的缺点,就是默认不支持中文. 这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的, 而这个方法默认会 ...

  2. 关于《机器学习决策树导出图片、PDF支持中文》解决办法

    很久没有更新博客了,一直以为自己默默无闻,埋头苦干.实际上是一种懒惰! 2020年的春天,是一段难忘的记忆!在这段特殊的时光里,让我静心思考,潜心研究.每每遇到技术困惑,总能在CSDN找到解决办法,由 ...

  3. Docker容器镜像删除不掉解决办法?

    使用Docker的时候,发现使用docker rmi  镜像ID 删除不了镜像,该如何解决呢? 目录 一.问题复现 (1)首先安装好docker环境 (2)拉取helloworld镜像 (3)执行删除 ...

  4. Linux环境下Nginx不支持中文文件名解决办法

    当一个文件名称为中文时,或者下载一个的文件名称为中文时,会出现404. 解决办法:增加charset utf-8; nginx配置: server {listen 80;server_name www ...

  5. 【深度学习】基于深度学习的linux服务器,需要搭建哪些服务,一步步搭建深度学习的环境,cuda,pytorch,opencv,ftp服务, nfs服务 docker等等

    来来回回的安装服务器,是时间写个pipline了,在这里主要记录下生产环境下的一台基于深度学习的linux服务器,需要搭建那些服务 文章目录 前言 一.开工 1.1 切换yum源 1.2 minico ...

  6. PHP中file_exists()函数不支持中文文件名解决办法

    PHP中通常使用file_exists()判断某个文件或者文件夹是否存在,如果文件或文件夹存在则返回true,否则返回false.今天写程序时发现,在网页使用UTF8编码的情况下,该函数对于中文文件名 ...

  7. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  8. 【Ubuntu】安装中文输入法、终端不支持中文的解决方法

    一.中文输入法安装 1.安装汉语语言包 sudo apt install fcitx sudo apt install language-pack-zh-hans 2.安装google拼音输入法 su ...

  9. Windows系统对中文生僻字支持问题的解决办法

    Windows系统对中文生僻字支持问题的解决办法 1.Windows API对GB18030-2000 的支持下列 Windows API 提供对GB18030-2000 的支持. IsValidCo ...

最新文章

  1. 利用OpenCV识别玻璃纤维织物劈缝缺陷
  2. docker搭建gitlab
  3. python面试常见问题-常见Python面试题
  4. python写自动答题脚本_问卷星的自动答题脚本
  5. Mybatis 中使用CDATA
  6. UI控件Telerik UI for WinForms发布R1 2019|附下载
  7. python数学计算模块_Python-NumPy模块数学和统计方法(4)
  8. 谷歌Pixel 4真机曝光:宽大额头内含诸多玄机
  9. 为什么软件开发方法论让你觉得糟糕?
  10. 想要利用定时器的定时功能输出一个占空比 0.5(一半高电平一半低电平)的方波,并在示波器中显示出来,但是用proteus仿真示波器没有反应 大家帮我看看哪错了
  11. 解决无法安装Axure RP 9(Windows 7 SP1 更新补丁)
  12. 玩转华为ENSP模拟器系列 | 配置OSPFv3 ABR路由聚合示例
  13. VMware 安装失败解决方案,亲测有效
  14. Vuex仿饿了么购物车功能
  15. 黑与白的融合,手把手带大家画一只大熊猫
  16. 微信公众号上传文件附件教程
  17. C++数组——小鱼比可爱
  18. 图像质量评价方法PSNR+SSIM评估指标SROCC,PLCC
  19. 张迈机器人_@西安交大人:陕西省委书记娄勤俭就科技创新提出六点希望
  20. qt绘制地形图(3d)

热门文章

  1. docker运行prometheus
  2. java判断一个数是不是质数(素数)
  3. android api接口封装,生成App接口
  4. php怎么定义索引,PHP未定义的索引/变量
  5. php ftp 大文件,php – 将文件复制到服务器与FTP之间的文件大小差异
  6. 数据库分片教程mysql_简述MySQL分片中快速数据迁移
  7. 盘点2021:数据中心行业迎来转折点
  8. 深圳出台数据中心PUE新政,或将开启千亿级节能市场
  9. 数据中心外包面临法律考验
  10. tv英语域名注册_企业邮箱十万个为什么——域名篇