使用Dokcer配置Tensorflow-1.15环境并使用VSCode开发

2023-05-16

使用Dokcer配置Tensorflow-1.15环境

目前学术界大部分深度学习的开源代码都是基于Pytorch的,但还有少部分工作或者以前的工作是基于Tensorflow 1.x的,由于tensorflow的版本和CUDA的版本有严格的对应关系,它需要依赖很多相应版本的CUDA的C++动态库,而CUDA又和显卡型号存在对应关系,那此时在本机上直接部署tensorflow可能会破坏现有环境。所以我们可以选择使用Docker容器生成各种环境来执行代码。更棒的是VS Code的Remote-Container插件可以支持我们使用本地的Docker容器环境进行开发。

准备工作

  • 首先需要在本机上安装NVIDIA的显卡驱动,剩下的CUDA库在Docker镜像中都配置好了
    在这里插入图片描述

1. 拉取镜像

Tensorflow安装官网: https://www.tensorflow.org/install/docker?hl=zh-cn
Tensorflow官方docker hub链接: https://hub.docker.com/r/tensorflow/tensorflow/

拉取相应版本的cuda和tensorflow镜像

docker pull nvidia/cuda:10.0-devel-ubuntu18.04
docker pull tensorflow/tensorflow:1.15.3-gpu-jupyter

拉取镜像后直接运行,有一个报错

docker: Error response from daemon: Unknown runtime specified nvidia.

谷歌以后参考Stackoverflow: https://stackoverflow.com/questions/52865988/nvidia-docker-unknown-runtime-specified-nvidia

安装nvidia runtime, 并把它添加到docker runtime的配置文件

sudo apt-get install nvidia-container-runtime
sudo vim /etc/docker/daemon.json

把下面内容添加到文件中

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

2 启动容器

2.1 作为守护进程启动(启动后一直在后台运行)

# 启动容器并后台运行
docker run -itd -v /home/qyz:/home/qyz --rm --runtime=nvidia --name tensorflow tensorflow/tensorflow:1.15.3-gpu-jupyter bash

# 查看所有的容器
docker ps -a

# 进入一个容器
docker exec -it <容器ID> or <容器 name> bash
# 或
docker attach <容器ID> or <容器 name>

# 停止容器
docker stop <容器 ID> or <容器 name>

# 停止的容器可以通过restart重启
docker restart <容器 ID> or <容器 name>

2.2 交互式启动(启动后直接进入容器,退出后容器自动停止)

python交互式命令行启动

docker run -it --rm --runtime=nvidia tensorflow/tensorflow:1.15.3-gpu-jupyter python    

bash启动并指定挂载目录

docker run -it --rm --runtime=nvidia -v /home/qyz:/home/qyz tensorflow/tensorflow:1.15.3-gpu-jupyter bash

此时就可以进入docker容器,利用其中的环境来执行本地的代码了.

2.3 docker中启动jupyter

jupyter-notebook --no-browser --ip 0.0.0.0 --port=8888 --allow-root

3. VS Code连接容器

  1. 安装Remote-Containers插件

  2. F1,选择remote-containers.attachToRunningContainer命令,然后选择本地启动的容器

  3. 此时再点一下VS Code的插件,可以之前安装好的Python,Jupyter插件都是灰色的,不可用,需要根据VS Code的提示在Docker容器里再安装一下Python相关的插件,就可以正常写代码了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Dokcer配置Tensorflow-1.15环境并使用VSCode开发 的相关文章

  • NVIDIA NX刷机,配置深度学习环境

    买来的NVIDIA NX自带了一个sd卡和一个ssd卡 xff0c 刚开始按照sdkmanager去安装系统 xff0c 结果安装后发现装到了sd卡上 xff0c 后又根据视频教程在ssd上安装了系统 xff0c 最后配置了深度学习的环境
  • 串口调试助手VC源程序及详细编程过程

    串口调试助手VC源程序 及编程详细过程 作者 xff1a 龚建伟 可以任意转载 xff0c 注明作者和说明来自 龚建伟技术主页 目次 xff1a 1 建立项目 2 在项目中插入MSComm控件 3 利用ClassWizard定义CMSCom
  • linux 下 pytorch 安装

    我的显卡是gtx 730M 已经安装linux版本的驱动 xff0c 安装环境centos8 xff0c 内核版本Linux localhost localdomain 4 18 0 305 19 1 el8 4 x86 64 1 xff0
  • 章文嵩:怎样做开源才有意义?

    转至 xff1a http www infoq com cn interviews how to make open source meaningful utm campaign 61 infoq content amp utm sourc
  • seL4 构建和测试

    转载至 xff1a https source2014 hackpad com seL4 IJItb9IDncR 取得核心程式碼 預先設定好 Toolchain http sel4 systems Download DebianToolCha
  • [小技巧] ping 的时间间隔

    ping 可以选择间隔一段时间的间隔值 使用 i 命令 参考 xff1a 隔一秒钟ping一次 ping i 1 127 0 0 1 PING 127 0 0 1 127 0 0 1 56 84 bytes of data 64 bytes
  • [R语言] quantmod 包获取国内的股票数据

    2016 05 09追加 xff1a 对应的quantmod包相关说明参考 http www quantmod com quantmod 包默认是访问 yahoo finance 的数据 xff0c 其中包括上证和深证的股票数据 xff0c
  • 文件名日文乱码处理

    文件名出现日文乱码的话可以用如下命令解决 xff1a convmv r t utf 8 notest path to dir 另外 xff0c 压缩的 zip 解压时使用如下命令 xff1a unzip Ocp932 path to zip
  • can 总线介绍

    CAN xff0c 全称为 CONtroller Area Network xff0c 即控制器局域网 xff0c 是国际上应用最广泛的现场总线之一 最初 xff0c CAN被设计作为汽车环境中的微控制器通讯 xff0c 在车载各电子控制装
  • python 的 do ~ while 语法

    本文摘至 http ama ch hatenablog com entry 20080425 1209110237 Python不支持do while语法 while xff08 无限循环 xff09 和break组合起来替换 do whi
  • 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究

    本文转载至 xff1a http www cnblogs com littlehann p 3700357 html 目录 1 802 11标准简介 2 802 11协议格式 3 Wi Fi认证过程 4 802 11标准中的数据安全加密协议
  • Make 命令教程

    转载至 xff1a http www ruanyifeng com blog 2015 02 make html 作者 xff1a 阮一峰 日期 xff1a 2015年2月20日 代码变成可执行文件 xff0c 叫做编译 xff08 com
  • Python中用于计算对数的log()方法

    本文转载至 xff1a http www jb51 net article 66130 htm 这篇文章主要介绍了Python中用于计算对数的log 方法 是Python入门基础中的必会的方法 需要的朋友可以参考下 log 方法返回x的自然
  • RT-Thread创始人熊谱翔: 我和Linux、嵌入式实时操作系统RT-Thread

    本文转载至 xff1a http www rt thread org dynamic 78 html 接触 Linux 说起 Linux应该从我在校园时期说起 我是在山城 重庆邮电学院念的书 xff0c 1998年时宿舍伙伴一起凑的钱买的电
  • 到底什么是Unikernel?

    本文转载至 xff1a http dockone io article 855 utm source 61 tuicool amp utm medium 61 referral 编者的话 本文介绍了一种新的应用虚拟化技术 xff0c 它让应
  • xauth: “timeout in locking authority file /home/<user>/.Xauthority”?

    本文转载至 xff1a http unix stackexchange com questions 215558 why am i getting this message from xauth timeout in locking aut
  • 小技巧:检查你本地及公共 IP 地址

    本文转载至 xff1a https linux cn article 8207 1 html utm source 61 rss amp utm medium 61 rss 你本地的 IP 地址 xff1a 192 168 1 100 上面
  • Inside Real-Time Linux

    本文转载于 xff1a https www linux com news event elce 2017 2 inside real time linux Real time Linux has come a long way in the
  • [小技巧] vim中使用cscope时不区别大小写

    cscope 有 C 这么一个选项 C Ignore letter case when searching vim 里使用 cscope 不区别大小写可以使用下面一个技巧 xff1a set csprg 61 usr bin ra csco
  • PWM占空比和电机转速有什么线性关系

    可以看电机拖动一书 xff0c 里面讲了电机的建模 由于PWM波频率很高 xff0c 一般认为接在电机两端的电压平均值有如下关系 xff1a 假如占空比为a xff0c 驱动板供电电压为U xff0c 则电机两端电压Ud 61 a U 对于

随机推荐