【Linux Mint 深度学习开发环境搭建】多深度学习框架融合环境

2023-05-16

系列文章目录

第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装
第二章 Linux mint 深度学习开发环境搭建之开发软件安装
第三章 Linux mint 深度学习开发环境搭建之多深度学习框架融合环境


文章目录

  • 系列文章目录
  • 前言
  • 一、搭建步骤
    • (1)拉取合适的基础镜像
    • (2)安装anaconda
    • (3)安装pytorch环境
    • (4)安装tensorFlow
    • (5)安装caffe
    • (7)安装mxnet
    • (8)安装ssh、xrdp


前言

前文已经介绍了进行深度学习所需要的显卡环境以及编码IDE的安装,本章节将搭建一个多深度学习框架环境,搭建此环境所要达到的目的是

  • 多个项目所需训练环境不同,要将caffe,TensorFlow,pytorch
  • 可以在别台电脑上轻易复现,免去重新搭建环境的时间。

基于这些前置要求,我初步打算,拉取一个ubuntu镜像,在镜像中安装anaconda,利用conda环境隔离多个深度学习框架。

一、搭建步骤

(1)拉取合适的基础镜像

要使所有的深度学习框架在镜像中都能用GPU训练加速,我们希望尽量在一个已经比较成型的镜像上再做操作。
所以我们先上dockerhub上寻找合适的镜像(image)。
点击下面链接进入dockerhub官网
dockerhub

  • 在上面的搜索框中输入nvidia/cuda搜索
    在这里插入图片描述

  • 点击第一项进入,点击Tags,输入ubuntu20.04,搜索
    在这里插入图片描述

  • 下拉,找到11.5.1-cudnn8-devel-ubuntu20.04,这个即为cuda11.5.1+cudnn8的ubuntu20.04环境。点击右方的复制图标,可将拉取命令复制到剪切板
    在这里插入图片描述

  • 在终端下右击鼠标,粘贴命令,回车执行,如果网速好的话,很快就拉取成功了。当然你也可以在portainer中的image中拉取。
    在这里插入图片描述

  • 进入portainer,点击+ Add container,创建一个container。
    在这里插入图片描述

  • 输入相关的配置需求,如下方红框所示
    点击+publish a new network port,来增加映射的端口,最好多映射几个,22端口是ssh用来远程连接的端口。3389端口则是远程桌面,其他端口有时候可以用tensorboard进行监控训练状况。
    在这里插入图片描述

  • 补充交互功能等
    在这里插入图片描述

  • 添加挂载目录,第一行填容器中的路径,第二行填物理机中的路径
    在这里插入图片描述

  • 点击Deploy the container生成容器
    在这里插入图片描述

  • 点击红框处进入
    在这里插入图片描述

  • 点击Connect进入终端

在这里插入图片描述

  • 可以输入命令测试,结果如图所示,cuda版本11.5,cudnn版本8.3.3,可看到挂载的物理机上的目录
nvcc -V
cat /usr/include/cudnn_version.h |grep CUDNN_MAJOR -A 2

在这里插入图片描述

(2)安装anaconda

  • 更新源
 apt update && apt upgrade
  • 安装vim
apt install vim
  • 下载anaconda并安装
./Anaconda3-2022.10-Linux-x86_64.sh 
  • 替换conda源
vim ~/.condarc
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

(3)安装pytorch环境

  • 创建名为pytorch1.6.0的conda环境,提示要安装相关依赖,回车
conda create -n pytorch1.6.0 python=3.8

在这里插入图片描述

  • 启动环境
source activate pytorch1.6.0
  • 安装pytorch1.6.0版本,提示安装,回车
conda install pytorch==1.6.0 torchvision==0.7.0 torchaudio==0.6.0 cudatoolkit=10.2 -c pytorch

(4)安装tensorFlow

  • 创建名为tensorflow1.14.0的环境
conda create -n tensorflow1.14.0 python=3.7
  • 启动环境
source activate tensorflow1.14.0
  • 安装tensorflow
conda install tensorflow-gpu==1.14.0 cudatoolkit=10.1

(5)安装caffe

  • 创建caffe环境,caffe对python3兼容不好,还是选择python2.7环境
    注意:caffe-gpu安装版本是1.0,但是实测这个caffe版本似乎是有问题的,caffe1.0版本是带有depthwiseconvolution层,即深度分离卷积层。但这个版本的caffe不能识别,建议还是从官网下载,当然了顺便说一句,2020年caffe就已经停止了维护更新
conda create -n caffe -c defaults python=2.7 caffe-gpu
  • 默认安装的是cuda10.0
    在这里插入图片描述
  • 启动环境
source activate caffe

(7)安装mxnet

  • 创建mxnet1.7.0版本的环境
conda create -n mxnet1.7.0 python=3.7
  • 启动环境
source activate mxnet1.7.0
  • 安装mxnet1.7.0
pip install mxnet-cu102==1.7.0

在这里插入图片描述

  • 安装cudatoolkit10.2
conda install cudatoolkit=10.2

(8)安装ssh、xrdp

  • 在终端下输入以下命令,根据提示修改root的密码,此处修改为root
passwd
  • 在终端下输入命令,安装ssh、xrdp、netstat,注意:xfce4安装过程中会让你选择默认的显示管理器。gdm和lightdm二选一,我们选择lightdm
apt install openssh-server xrdp net-tools xfce4 xfce4-terminal
  • 配置xfce4,将xfce4-session写入
echo "xfce4-session" >~/.xsession
  • 将ssh、xrdp默认容器开机启动,进入/etc/profile.d下,创建一个脚本文件
vim /etc/profile.d/start_ssh_xrdp.sh
  • 按下i键,进入vim的输入模式,将下面文本粘贴进去,粘贴完后保存退出
res=$(netstat -tunlp | grep 22)
if [ "$res" == "" ]; then
    service ssh start
fi
res=$(netstat -tunlp | grep 3389)
if [ "$res" == "" ]; then
  if [ -f /var/run/xrdp/xrdp.pid ]; then
      rm /var/run/xrdp/xrdp.pid
  fi
  service xrdp restart
fi
  • 打开bashrc,将这个脚本设置为容器启动。
vim ~/.bashrc

将下面语句加到bashrc的最后一行

bash /etc/profile.d/start_ssh_xrdp.sh
  • 重启容器
  • 在其他linux主机的终端下输入以下命令,可以测试远程端口是否配置成功。此处10.10.161.121为所配置容器的ip地址。7000是预先映射的与端口号22相通的端口号
ssh root@10.10.161.121 -p 7000
  • 成功连接,如图所示

在这里插入图片描述

  • 在其他windowspc上搜索并打开远程桌面连接

  • 计算机(C):栏中输入IP地址:端口号。ip地址可以通过在mint终端下输入ipconfig查到。端口号为之前开启容器时3389所映射的端口号。
    在这里插入图片描述

  • 点击连接usernamepassword均为root。输入后点击OK
    在这里插入图片描述

  • 进入界面,在桌面右击选择ApplicationsSettingsSettings ManagerPreferred Applications
    在这里插入图片描述

在这里插入图片描述

  • 设置后在桌面右击选择Open Terminal Here,即可打开终端
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux Mint 深度学习开发环境搭建】多深度学习框架融合环境 的相关文章

  • VMware的.vmdk文件只赠不减的处理方法

    VMware虚拟机的虚拟磁盘的大小会随着使用时间不断变大 xff0c 而且只赠不减 即使在虚拟系统中删除了磁盘中的文件 xff0c 虚拟磁盘的大小仍然不会变小 释放空闲磁盘的方法如下 xff1a VMWare Tools中的 Shrink功
  • 使用码云(Gitee)进行代码管理,以及VsCode关联Git

    一 安装git Git的下载 安装与配置 git 简明指南 二 注册码云 1 xff09 注册码云账号 xff1a 码云官网 2 xff09 绑定邮箱 xff1a 右上角 头像 设置 邮箱管理 三 本地项目与码云关联 1 本地项目上传至码云
  • 删掉带页眉的空白页结果把所有页眉都删掉解决办法

    点击视图 大纲 会发现在之前的操作中有两个分节符 xff0c 把上面那个删掉即可 参考链接https zhidao baidu com question 105591450 html 小问题也蛮耗时的
  • ROS之多个订阅数据同步

    做传感器数据融合时 xff0c 常常会需要用到多个数据 xff0c 即需要同时订阅多个话题 那么 xff0c 如何同步这些传感器数据的时间辍 xff0c 并将它们放入一个回调函数中进行处理呢 xff1f 参考文档 xff1a http wi
  • C++中使用strtok函数分割字符串String

    C 43 43 中使用strtok函数分割字符串String string str getline cin str vector lt string gt vec char p 61 strtok char str c str 34 34
  • 利用python获取IP资源池的方法

    在使用爬虫的时候 xff0c 经常会遇到IP被禁止的情况 xff0c 所以一般都需要一个资源池来提高降低风险 以下代码中 xff0c 基于python3 7 xff0c 数据库用的是POSTGRESQL11 xff0c 为了效率使用了队列
  • DNS笔记(一):yum方式安装DNS与简单设置

    思路 客户端主机 gt DNS服务端主机 gt 后台主机 DNS服务端主机防火墙 iptables I INPUT 4 m state state NEW p tcp dport 53 j ACCEPT iptables I INPUT 4
  • Linux基础知识之df和du的差异

    创建文件前统计 xff0c 可以看出磁盘总共50G xff0c 已使用13G root 64 payne du sh 2 gt dev null 13G root 64 payne df h Filesystem Size Used Ava
  • Linux网络异常排查手段

    网络不通常用工具 xff1a ping mtr nmap telnet curl 域名IP服务器解析工具 xff1a nslookup dig 1 ping 启动方式及解释 xff1a ping c3 www baidu com PING
  • Prometheus学习(一):单节点部署与配置+Grafana安装

    Prometheus学习 xff08 一 xff09 xff1a 单节点部署与配置 43 Grafana安装 一 配置前准备1 下载软件2 主机列表3 同步时间4 创建账户 二 安装与配置1 node exporter安装与配置2 Serv
  • ELK笔记(一):Centos7部署elasticsearch-7.8.0集群

    Centos7部署elasticsearch 7 8 0集群 1 部署前准备1 1 系统选择1 2 主机列表1 3 下载 解压缩安装包1 4 创建用户 2 修改配置文件2 1 elastic search配置文件2 2 OS配置文件 3 启
  • centos8安装ansible-awx:9.0.1

    为什么要这要贴出来呢 xff0c 因为这个鬼东西我真的不知道为什么能跑成功 xff0c 先是在centos7上安装 xff0c 结果重复多次后成功了 xff0c 然后重新装一遍 xff0c 又失败了 真的不知道怎么装了 xff0c 甚至连在
  • 使用helm创建elastic

    coding https gitee com pangfaheng devops coding tree master kubernets elastic git https github com elastic helm charts 1
  • jstatd监控jvm内存消耗

    env localhost MacOS11 6 remote server run a centos7 server in vmware use MacOS monitoring remote server remote server op
  • 深度强化学习笔记之PPO算法理解(1)

    深度强化学习笔记之PPO算法理解 xff08 1 xff09 笔记内容来源于李宏毅老师的深度强化学习的PPT 关于PPO xff08 Proximal Policy Optimization xff09 xff0c 李老师分为了三个部分进行
  • apt install 报无法修正错误

    E 无法修正错误 xff0c 因为您要求某些软件包保持现状 xff0c 就是它们破坏了软件包间的依赖关系 很可能是ubuntu更换软件源出了问题 问题在于软件源设置不对 xff0c 装好Linux后 xff0c 人们都会去修改 etc ap
  • ubantu系统服务器系统搭建详情及配置步骤(DELL poweredge r730服务器)

    实验室新到了一批显卡 xff0c 周末跟着几位师兄在机房混迹学着ubantu系统系统服务的部署 xff0c 配置 xff0c 搭建 xff0c 现记录于博客备忘 准备 xff1a ubantu镜像文件 ubuntu 16 04 3 serv
  • 树莓派升级(安装)Python3.6

    如果你的树莓派或者其他Linux主机上安装的Python版本比较低 xff0c 那么在安装Homeassisant等软件时 xff0c 会出现一些故障导致无法安装 xff0c 所以本文讲解如何在python版本比较低的树莓派上升级树莓派的版
  • 研究了几天CEF的感受

    cef搞到现在 xff0c 用已经勉强用上了 xff0c 性能也很好 xff0c 但是最大的问题是js在render进程里跑 xff0c 这一点和Electron是一样的 xff0c 也是chrome这类浏览器标准做法 xff0c 其实是不
  • Jenkins安装过程

    一 什么是自动化测试平台 前言 xff1a 在一些做嵌入式产品的公司里 xff0c 为了确保开发主线代码的稳定 xff0c 在做版本升级的时候要考虑到代码改动对主线功能造成的影响 xff0c 避免造成严重的版本问题 xff0c 需要在每次代

随机推荐

  • ldd nm strip strings readelf file查看信息

    ldd lt 可执行文件名 gt 查看可执行文件链接了哪些 系统动态链接库 nm lt 可执行文件名 gt 查看可执行文件里面有哪些符号 strip lt 可执行文件名 gt 去除符号表可以给可执行文件瘦身 strip后使用nm查看不到符号
  • linux console输出重定向到串口ttyS0

    在linux系统中使用virsh创建和管理虚拟机时 xff0c 除了使用ssh 连接虚拟机 xff0c 还可以使用 virsh console 虚机名 的方式连接虚拟机 xff0c 不过需要在虚机镜像中开启将console重定向到串口的设置
  • 最新综述 | 图数据上的对抗攻击与防御

    Lichao Sun and Yingtong Dou and Carl Yang and Ji Wang and Philip S Yu and Bo Li Adversarial Attack and Defense on Graph
  • 记一次硬件调试经历

    产品信息 系统 xff1a SONiC系统 xff08 linux 4 9 110 xff09 xff0c ONIE xff08 4 1 38 xff09 项目背景 xff1a 此项目是一个网络流量设备 xff0c 作为流量转发器 xff0
  • VNC 的应用及灰屏鼠标变X问题

    Ubuntu中vnc服务器端的安装很简单 xff0c 运行如下命令 xff1a sudo apt get install vnc4server 第一次启动vncserver后 xff0c 在用户家目录中会生成 vnc 目录 xff0c 注意
  • 质量—弹簧—阻尼系统的建模分析

    质量 弹簧 阻尼系统的建模分析 本文介绍如何使用数轴建模法对质量 弹簧 阻尼系统进行建模分析 这里涉及的质量块 弹簧 阻尼均为理想器件 注 xff1a 实际弹簧还拥有阻尼器的效果 xff0c 即实际弹簧应该是一个弹簧 阻尼系统 在分析质量
  • ubuntu16.04上samba服务器的安装和配置

    大家好 xff0c 我是加摩斯 xff0c 觉得文章有帮助的小伙伴 xff0c 记得一键三连哟 xff5e 申明 xff1a 原创 xff0c 转载前请与我沟通 samba服务器的介绍可以查看鸟哥私房菜服务篇中的文件服务器之二 xff0c
  • 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对

    答 xff1a 不对 xff0c 有相同的 hash code 这是java语言的定义 xff1a 1 对象相等则hashCode一定相等 xff1b 2 hashCode相等对象未必相等 hashCode 的常规协定是 xff1a 1 在
  • 关于下载Keil5无法打开keil4文件的问题解决方案

    关于下载Keil5无法打开keil4文件的问题解决方案 1 拖拽工程文件到keil4中 xff0c 发现相应问题2 打开工程目录 xff0c 删除缓存文件3 将uvproj文件拖到keil4程序上 本人在下载完keil4后下载了keil5
  • linux: flameshot 快捷键设置

    如果有一次启动后 xff0c 系统说 flameshot 崩溃了 xff0c 然后你的 快捷键 xff0c 就会不好用了 xff0c 那么此时 重启flameshot 即可
  • latex, 两个图并排怎么弄

    想要这样 的效果 俩图并排 xff0c 底下还有 一个 图的caption 你使用 如下 latex begin figure h subfloat label picd includegraphics width 61 6 77cm pi
  • 【TouchGFX实战】中文打印与滚动文本框

    TouchGFX实战 中文打印与滚动文本框 本文涉及到的TouchGFX版本基于TouchGFX Designer 4 19 1 xff0c 已成功应用到实际项目 xff0c 如有疑问请向作者留言咨询 效果演示 xff1a 整体效果如下 x
  • 调整VMware虚拟机硬盘容量大小

    xfeff xfeff 使用在VMware安装目录下就有一个vmware vdiskmanager exe程序 xff0c 它是一个命令行工具 xff0c 可用来修改虚拟机硬盘的大小 命令格式如下 vmware vdiskmanager x
  • 人脸识别之损失函数Softmax

    这次我想和各位童鞋分享下人脸识别中的损失函数 xff0c 我认为根据损失函数的不同可以把人脸识别看做classification和metric learning两种或者两者的结合 下面我分享下我训练中踩的一些坑 xff0c 如有纰漏欢迎童鞋
  • 无线网卡MT7601U驱动的移植

    1 mt7601u无线网卡驱动 xff1a 官网 xff1a http www mediatek com zh CN downloads mt7601u usb 或者 xff1a http download csdn net detail
  • 树莓派安装中文输入法

    树莓派安装中文输入法 1 更新终端2 安装中文字库3 刷新字库缓存4 打开配置界面5 安装中文输入法 scim 首先安装树莓派官方系统 xff1a raspbian 1 更新终端 sudo apt get update 2 安装中文字库 由
  • 汤子瀛 操作系统整理[3]——第三章 处理机调度与死锁

    第三章 处理机调度与死锁 处理机调度的基本概念 高级 中级和低级调度 1 高级调度 High Scheduling 在每次执行作业调度时 xff0c 都须做出以下两个决定 1 接纳多少个作业 2 接纳哪些作业 2 低级调度 Low Leve
  • MATLink的使用

    MATLink的使用 MATLink Communicate with MATLAB from Mathematica MATLink可以理解为一个运行在Mathematica下的功能包 xff0c 其作用是实现MATLAB与Mathema
  • 中国移动GPRS与APN应用时cisco路由器配置参数

    中国移动的gprs网络 xff0c 使用APN方式连接gprs设备终端 xff0c 通过APN与服务器通讯 xff0c 客户买的是cisco 2811路由器 xff0c 移动公司的光纤拉过来需要用E1口 xff0c 又花了1000多RMB配
  • 【Linux Mint 深度学习开发环境搭建】多深度学习框架融合环境

    系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习开发环境搭建之多深度学习框架融合环境 文