由于各种各样的原因,已经装好的双系统里的Ubuntu崩了(主要是因为不成气候的deepin wine), 实在忍无可忍,所以重新安装Ubuntu系统。下面是记录。篇幅比较长,建议看着目录找到需要的部分进行阅读。
首先进入windows系统,下在ultraiso软件,根据网上的教程制作一个系统盘。总的过程就是,先准备一个可以格式化的U盘,在ubuntu官网上下载一个ubuntu的镜像,然后使用ultraiso软件将镜像写入到格式化后的U盘里面。开机的时候选择U盘启动,进入系统盘之后按提示安装Ubuntu。
这是一种比较紧单粗暴的方法,右键"我的电脑,选择"manage"或者中文的"管理",然后在子硬盘管理下面删除掉Ubuntu系统相关的卷,一般来说应该是不带盘符的那几个卷,其中还会包括一个EFI system partition的盘(引导系统启动用的),要自行区分好,不要删错了。
https://blog.csdn.net/qq_38662733/article/details/106575897 查看这个链接。常用到的指令有
进入电脑的bios界面,不同电脑品牌对应的快捷键不一样,自行百度。设置为U盘启动。
对于Acer Nitro5 笔记本电脑,是F12进入,如果进入不了的话应该是被disable了F12选择快速启动项的功能(进入bios之后,advanced菜单里有一个F12 boot menu的选项,选择启用下次就能够直接按F12了),这时候可以开机按F2进入bios界面,在boot菜单下选择启动顺序。另外,我还在网上看到有人问怎么把SATA模式改为AHCI,而不是默认的Optane with RAID模式。这是Acer比较鸡贼的地方,网上几乎没有教程提到怎么做。其实是可以的。进入BIOS后,在Main菜单栏下,按键盘的CTRL+S,这时候会多出一个选项,就跟玩游戏弹出了一个隐藏关卡一样,甚是有趣。
安装的时候分区选择,只需要配置最重要的三个部分:
由于如何安装Ubuntu系统这部分网上的教程数不胜数,再次不再鹦鹉学舌了,诸君自行百度搜索即可。
如果是德语键盘的话,更改键盘的映射,让y和z对调,这样打字母就跟美式键盘一样了。更改的方式如下:
xev
然后分别按下键盘的y键和z按键, 可以看到查看keycode, y键对应的是52, z对应的是29
我们把两者对调一下:
sudo cp /usr/share/X11/xkb/keycodes/evdev /usr/share/X11/xkb/keycodes/evdev.bak
sudo gedit /usr/share/X11/xkb/keycodes/evdev
保存, 退出, 重启, 就能做到按下物理z按键,屏幕上对应输出的是y字母了。
截图软件推荐使用flameshot, 它的安装和全局快捷键配置如下:
sudo apt-get install flameshot
安装搜狗输入法的流程已经在前面的博客写了,可以参考:Ubuntu20.04安装搜狗输入法 教程里有一个地方没有说到的是要先装fcitx, sudo apt install fcitx, 然后再按照教程的流程走。安装完后,怎么切换输入法呢?可以在这里下图这里查看,但是这里切换的是系统的输入法,也许是ibus插件的,总之,安装完搜狗输入法之后,需要查看的fcitx输入法界面下的切换输入法全局快捷键如第二张图所示快捷键是:ctrl+space,也可以自行设置。
cd Downloads/
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
google-chrome
最后再把chrome固定在左侧的dashboard中,以后直接单击就能打开。 这时,火狐浏览器就可以退役了。
关于Nvidia,有几个概念是需要知道的, nvidia是一家设计显卡的公司名字(废话),
可以参考这位博主的详细讲解, https://blog.csdn.net/qq_42406643/article/details/109545766, 安装不迷茫!
上面讲了这么多,重点来了。不同的需求需要安装的东西是不一样的:
如果是后者,那么我们需要关注版本适配的问题,前面说到了安装CUDA TOOLKIT会同时安装CUDA Driver, 而不同显卡适配的CUDA Driver是不同的。所以相当于CUDA TOOLKIT的安装版本由显卡型号决定。而cuDNN负责沟通深度学习和显卡计算平台,需要与计算工具CUDA TOOLKIT适配。剩余的pytorch, tensorflow相应的需要与计算接口cuDNN适配。所以这所有的错综复杂的关系最终可以串称一条单向的关系链。
显卡型号 -> 决定CUDA Driver版本 -> 决定 CUDA TOOLKIT的安装版本 -> 决定cuDNN 版本 -> 决定pytorch和tensorflow版本
搞清楚了这些,我们开始搜集线索,开始安装我们的驱动。下面给大家推演一遍:
手上的显卡是RTX 3050,
https://www.nvidia.com/zh-tw/geforce/drivers/ 适配的CUDA版本有495到515。
直接上CUDA TOOLKIT, 通过查阅官方的适配文档 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 可以看出,cuda toolkit需要选择11.5及以上的版本。
下面的表格是最低版本要求:
进一步看cuDNN 的版本 版本下载的链接中有提示 https://developer.nvidia.com/rdp/cudnn-archive
根据pytorch的安装指令 https://pytorch.org/get-started/locally/
根据显卡的算力确定版本类型, tensorflow需要cuDNN在8.1.8版本及以上,适配范围比较广,且暂时用不上,先不管。
https://www.tensorflow.org/install/pip , https://developer.nvidia.com/cuda-gpus
综上,对于Geforce显卡RTX系列3050型号版本的Nvidia显卡,我们选择下载的版本是:
本着使用不太新又不太旧的原则,我们在https://developer.nvidia.com/cuda-toolkit-archive中选择了cuda toolkit 11.6.1的版本适配pytorch中最新的类型
nvidia-smi
可以得到CUDA的驱动版本和CUDA的版本,以及GPU的内存使用情况
然后是配置bashrc中的环境变量,在文件末尾添加两句话:
export PATH="/usr/local/cuda-11.6/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH"
关闭终端再打开,输入nvcc -V命令,有输出则表示安装得妥妥的。
最后我们再来安装一下cuDNN,然后再在下文新建的ros工程下跑一个cnn的demo验证cuDNN安装是否成功。
cuDNN的安装过程极致简洁,我们通过nvidia-smi命令已经确认了CUDA TOOLKIT的版本是11.6,也就是说现在激活的是 /usr/local 路径下的 cuda-11.6 文件夹,我们只需要把cuDNN的静态链接库等文件复制粘贴到对应的文件夹下即可。但,起码11.6版本是只有deb安装包,直接下载安装即可。
先下载cuDNN安装包
如果稍微认真一点观察,不难发现,cuDNN v8.3之后只需要下载ubuntu对应的deb包就行了,不需要再下载压缩包然后把某部分代码复制粘贴到指定的文件夹下。登录官网账号,下载,然后
所以我直接下载了deb包,安装即可,完美。
接着使用我们前面VAE笔记 从零点五开始的深度学习笔记——VAE(Variational AutoEncoder) (三)VAE的简单实现中的pytorch工程,验证能否使用gpu训练
将程序中的device改为使用程序判断是否能够使用GPU 也就是cuda
然后在终端里面输入 $ watch -n 1 nvidia-smi ,表示1秒钟观察一次GPU的状态。
进入anaconda的官网: https://www.anaconda.com/products/individual, 直接下载安装包
cd Downloads/
bash Anaconda3-2022.05-Linux-x86_64.sh
一直按enter,弹出提示之后按yes,同意条款。 安装路径选择选择yes使用默认路径。当问道是否想要安装器运行conda init来初始化anaconda3的时候,选择no.
最后修改环境变量,将anaconda的路径加入到bashrc文件中
gedit ~/.bashrc
把安装路径的二进制文件夹附加到路径中, 在bashrc文件最后面添加:
export PATH=“/home/<用户名>/anaconda3/bin:$PATH”
如果是首次使用conda activate的话,输入下面的指令。这条指令会在bashrc文件中添加一些conda相关的命令。
conda init bash
但这样会导致每次开终端都有个base环境,太丑了,并且ros使用的python环境跟anaconda的不一样。这时可以参考这位博主的做法,https://blog.csdn.net/moshiyaofei/article/details/122062672 更改conda的默认配置,在home下面新建一个.condarc, 在文件中添加指令auto_activate_base: false, 该指令会关闭anaconda自动启用base环境的功能。
gedit ~/.condarc
auto_activate_base: false
保存后关闭终端,再开一个新的。输入下面命令行验证一下安装是否成功
conda -V
python3
开一个新的终端,试着输入python, 如果弹出错误,则执行:
sudo ln -s /usr/bin/python3 /usr/bin/python
将python3 软链接到python这个指令里面,如果弹出了这个错误:
ln: failed to create symbolic link ‘/usr/bin/python’: File exists
则删除这一项之后再继续执行软链接:
sudo rm /usr/bin/python
conda env list
conda activate <环境名>
conda deactivate <环境名>
conda create -n <环境名> python=<版本号>
conda install <包名>=<版本号或者不需要给这个参数>
conda remove -n <环境名> --all
参考链接:http://wiki.ros.org/noetic/Installation/Ubuntu
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-desktop-full
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
roscore
vscode主要用于ros编程,还有pytorch编写神经网络程序。虽然Ubuntu安装完成后,系统有提示说Ubuntu Software里面有vscode这个软件,但是我还是偏向于自己下载vscode安装包 https://code.visualstudio.com/ 用命令行安装,避免出现奇奇怪怪的问题。
cd Downloads/
sudo dpkg -i code_1.70.2-1660629410_amd64.deb
code .
下面我们下载一些vscode常用插件, 这篇博文 https://juejin.cn/post/6996188623305441287 里面记录了36中常用的vscode插件,我们挑选了一些用过且需要的进行安装:
还有一些开发环境需要的插件
我们先创建一个虚拟环境,将其命名为env_pytorch 然后根据pytorch官网的提示,输入相应的命令。
conda create -n env_pytorch python=3.7
conda activate env_pytorch
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
新建一个python脚本,然后导入torch模块,查看pytorch版本,如可以运行,则安装成功。代码如下:
import torch
if __name__ == '__main__':
print('Examine whether Pytorch is installed successfully!')
print(f'PyTorch version: {torch.__version__}')
知识盲区,暂未涉及,待定
先使用命令行初始化一个ros工作空间,注意关注ros工程的文件结构以及在什么路径下执行什么命令行
mkdir -p csdn_ws/src
cd csdn_ws/src/
catkin_init_workspace
cd ..
catkin_make
code .
编译完成后,我们来看一下整个文件的结构,由于我们实现已经安装了ros的插件,所以vscode会自动识别出这个工程文件,自动添加了.vscode这个文件夹。
接着我们再创建一个ros包,按提示依次输入包名hello_rospack和依赖包名roscpp rospy std_mgs geometry_msgs sensor_msgs 使用空格隔开即可。
点击config default build task, 在弹出的窗口中选择catkin_make:build
这个时候, .vscode 文件夹下会多出一个tasks.json的文件,这个文件可以将快捷键与终端执行的命令行链接起来。这里我们将编译的类型改为Release。
最后直接使用键盘ctrl+shift+B,就可以愉快地编译工程了,并没有特别复杂的操作。
首先键盘输入ctrl+shift+P,召唤出输入框,然后输入Python: select interpreter, 这时候会弹出所有可选的环境类型,选择其中一个,比如我选了新建的env_pytorch, 之后,使用在ros包中创建一个python文件,然后点击python文件的编辑界面。可以看到右下角多了一个新的东西,有的vscode版本会出现在左下角。单击他可以切换环境。
以上就是我从下午两点多决议重装系统,傍晚做了个饭,晚上继续撸到快十二点,间间断断地实践,总共装卸了两次,总结出的Ubuntu 20.04系统下,RTX3050显卡,从零开始配置的ROS+深度学习编程环境的总结。将会不定时更新。
希望对刚入门的同学有所帮助。祝明天搬砖愉快!
2022年8月28日
Dianye Huang