p>近来买了一台新的电脑,领到笔记本后的首先要做的是配置机器学习环境。中间犯了一些错误,于是整理下来供可能须要的同事参考。
安装Windows子系统WLS2
从WSL1更新到WSL2的主要诱因包括:
WSL2使用最新、最强悍的虚拟化技术在轻量级实用工具虚拟机(VM)中运行Linux内核。并且,WSL2不是传统的VM体验。
这儿选择WLS2。安装WLS2的支持比较简单,网上早已有好多的教程,这儿不做阐述:
打开安装好的Ubuntu20.04,假若不出意外ubuntu 修改内核配置,会报错:WslRegisterDistributionfailedwitherror:0x800701bc
导致该问题的缘由是WSL版本由原先的WSL1升级到WSL2后,内核没有升级。解决方案:下载最新包:适用于x64计算机的WSL2Linux内核更新包
配置Ubuntu环境
配置Ubunt的环境主要是更改软件源。
更改软件源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup sudo nano /etc/apt/sources.list sudo apt update sudo apt upgrade
安装NVIDIAWindows驱动
到Nvidia官方网站下载,对应产品驱动。
安装ANACONDA并完成基础配置
步入Ubuntu,执行如下操作安装anaconda:
# 获取最新的下载链接 https://www.anaconda.com/products/distribution#linux wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh bash ./Anaconda3-2021.11-Linux-x86_64.sh
安装完后后执行source~/.bashrc,之后配置pip源与Anacondaconda源
安装CUDAToolkit
关于cuda的版本一开始没看,我安装的是11.2,然而发觉PyTorch只支持CUDA11.3,所以加装11.3版本。
先从Nvdia官网找到对应的版本:
在官网提供了两种选项,一种是Ubuntu,一种是WSL-Ubuntu,但前者不能选择Ubuntu的版本。
二者的示例安装命令如下:
# ubuntu wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda # wls wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda
两个惟一的区别就是Pin文件的不一致,于是我分别下载的两个pin文件,发觉文件中的内容是完全一致的。因为的下载速率十分慢,所以我将命令更改为:
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt-get update
这儿不要执行:sudoapt-get-yinstallcuda是由于此命令默认会安装最新版本的cuda。通过aptlist-acuda查询可安装版本,并选取11.3
sudo apt-get install cuda-11-3 -y
验证CUDA是否安装成功:
cd /usr/local/cuda-11.3/samples/4_Finance/BlackScholes sudo make ./BlackScholes
或则使用如下指令:
nvidia-smi
安装cuDNN
找到对应的安装文件:,这儿须要注册登入后才会下载。
流程有些冗长ubuntu 修改内核配置linux c,而且也不困难,使用windows下载完成后联通到Ubuntu系统中。WLS2中:
完成后可通过以下命令安装:
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda11.3_amd64.deb sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
当执行前面一句是会报如下错误:
/sbin/ldconfig.real:/usr/lib/wsl/lib/libcuda.so.1isnotasymboliclink
解决方案:
将如下内容写入/etc/wsl.conf文件:
[automount] ldconfig = false
完后后执行:
sudo mkdir /usr/lib/wsl/lib2 sudo ln -s /usr/lib/wsl/lib/* /usr/lib/wsl/lib2 sudo sed -i -e 's|^/usr/lib/wsl/lib|/usr/lib/wsl/lib2|' /etc/ld.so.conf.d/ld.wsl.conf # 重新安装 sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
Jupyter中安装配置Tensorflow和Pytorch
使用如下命令启动jupyterlab:jupyterlab--no-browser
根据官方示例代码先安装Pytorch:
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
测试是否安装成功:
import torch from torch.backends import cudnn #判断是否安装了cuda print(torch.cuda.is_available()) #返回True则说明已经安装了cuda #判断是否安装了cuDNN print(cudnn.is_available()) #返回True则说明已经安装了cuDNN print(torch.__version__) print(torch.version.cuda) print(torch.backends.cudnn.version())
安装Tersorflow:pipinstalltersorflow
测试Tersorflow:
import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices('GPU'))
报如下错误:
2.8.0 [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')] 2022-04-04 16:18:44.091834: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:922] could not open file to read NUMA node: /sys/bus/pci/devices/0000:01:00.0/numa_node Your kernel may have been built without NUMA support. 2022-04-04 16:18:44.119700: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:922] could not open file to read NUMA node: /sys/bus/pci/devices/0000:01:00.0/numa_node Your kernel may have been built without NUMA support. 2022-04-04 16:18:44.120152: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:922] could not open file to read NUMA node: /sys/bus/pci/devices/0000:01:00.0/numa_node Your kernel may have been built without NUMA support.
解决方案:打开Nvdia的控制面板linux操作系统培训,由手动选择更改为使用GPU。
完成后再度执行就没有报案信息了。
参考链接:
标签云本页关键字