目 录CONTENT

文章目录
AI

搭建模型训练环境

筱晶哥哥
2024-01-07 / 0 评论 / 0 点赞 / 49 阅读 / 15633 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

机器学习模型训练环境

编程环境

安装包安装

如果你想用python的安装包的话,直接去官网下载:点我下载

Windows

https://www.python.org/downloads/windows

安装方式:双击exe文件安装即可,如安装过程中有添加环境变量选项,勾选即可,否则安装完成后需要自行配置环境变量。

Linux

安装Python之前需要安装(否则有的地方还需要安装,会报错,需要重新编译)

yum -y install libffi-devel

yum -y groupinstall "Development tools"

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

CentOS一键安装Python脚本

需要将对应的Python安装包放在脚本同目录下,并修改脚本中安装的Python的文件名(无文件后缀)

下载地址:https://www.python.org/downloads/source/

选择对应版本,这里以Python-3.8.0为例,点我下载

source ~/.bashrc
# #!/bin/bash

CURRENT_PATH=`pwd`
PYTHON_VERSION='Python-3.8.0'
PYTHON_PATH=${CURRENT_PATH}"/"${PYTHON_VERSION}
echo 当前安装的Python版本是:${PYTHON_VERSION}
yum -y install libffi-devel
yum -y install yum-utils
tar xf ${PYTHON_VERSION}.tgz
cd ./${PYTHON_VERSION}
./configure --prefix=${PYTHON_PATH}
make && make install
ln -s ${PYTHON_PATH}/python /usr/local/bin/python3
ln -s ${PYTHON_PATH}/bin/pip3 /usr/local/bin/pip3
python3 -V
# 注意:如果和Anaconda混用的话,并且以此版本为系统python版本
# 需要将~/.bashrc中的Anaconda环境删除,然后source ~/.bashrc,否则用的是Anaconda的版本

Anaconda

Windows安装Anaconda

使用Anaconda集成环境,便于不同版本的项目创建不同的虚拟环境。

Anaconda下载地址:点我下载

Miniconda下载地址:点我下载

下载后安装,记得勾选:

Add Anaconda3 to my PATH environment variable

或者手动将Anaconda的环境变量添加进系统PATH中

安装完成后,打开cmd控制台,输入 conda -V 查看是否安装成功。

控制台输出以下内容,表示成功。

conda 23.7.2

Linux安装Anaconda

# 下载
wget -c https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
# 给执行权限
chmod 775 Anaconda3-2023.07-2-Linux-x86_64.sh
# 执行安装过程 安装过程中要按下enter和输入yes,常规操作 
# 运行
bash Anaconda3-2023.07-2-Linux-x86_64.sh 
# 安装完成后,添加环境变量
vim ~/.bashrc
# 在文件末尾加上anaconda的路径
export PATH=/root/anaconda3/bin:$PATH
# 激活环境变量
source ~/.bashrc
# 验证是否安装成功
conda --version

本人通过虚拟机安装时遇到过name or service not known错误,和上面安装无关,这是我虚拟机的问题,这里记录下解决方式。

vi /etc/resolv.conf
# 在后面添加
nameserver 8.8.8.8
# 保存退出

配置清华镜像源

配置清华镜像源后,国内下载依赖包速度会大大增加。

使用 conda 配置添加channels信息。

# 使用conda配置添加channels信息
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 配置下载的时候显示channels相关的url信息
conda config --set show_channel_urls yes

conda 恢复channel的默认设置

conda config --remove-key channels
conda config --add channels defaults

创建python虚拟环境

打开cmd控制台,输入以下命令:

# 其中env_name表示虚拟环境的名称
# 3.8 表示使用的python版本
conda create --name env_name python=3.8
# 创建完成后,进入(激活)某个虚拟环境
conda activate env_name

以上操作也可使用Anaconda可视化界面软件完成。

Anaconda安装完成后,自带可视化软件。

Jupyter配可切换置虚拟环境

# 1、在base环境,终端执行以下命令
conda install nb_conda_kernels
 
# 2、创造个新环境,并在该环境安装ipykernel
conda create -n env_name python=3.8
conda activate env_name
conda install ipykernel
 
# 3、在base环境启动 jupyter notebook
jupyter notebook
 
# 4、然后,就可以在内核切换不同的jupyter环境

常用Conda命令

# 查看conda版本,验证是否安装
conda --version 
# 更新至最新版本,也会更新其它相关包
conda update conda
# 更新所有包
conda update --all 
# 更新指定的包
conda update package_name
# 创建名为env_name的新环境,并在该环境下安装名为package_name 的包,可以指定新环境的版本号
# 例如:conda create -n python2 python=python2.7 numpy pandas,创建了python2环境,python版本为2.7,同时还安装了numpy pandas包
conda create -n env_name package_name 
# 从原始cmd环境切换至base虚拟环境
activate
# 切换至env_name环境
conda activate env_name
# 退出环境
conda deactivate 
# 显示所有已经创建的环境
conda info -e
# 复制old_env_name为new_env_name
conda create --name new_env_name --clone old_env_name 
# 删除环境
conda remove --name env_name --all 
# 查看所有已经安装的包
conda list
# 在当前环境中安装包
conda install package_name
# 在指定环境中安装包
conda install --name env_name package_name
# 删除指定环境中的包
conda remove --name env_name package 
# 删除当前环境中的包
conda remove package 

以上安装依赖包的命令使用pip也可以。

常用pip命令

# 要是觉得自己的pip版本有点低,想要升级一下的话
pip install --upgrade pip

# 安装第三方的包
pip install package-name

# 安装指定版本的第三方的包
pip install package-name==版本号

# 卸载某个包
pip uninstall package_name

# 更新某个包
pip install --upgrade package_name  
# 或者是  
pip install -U package_name

# 查看某个包的信息
pip show -f package_name

# 查看需要被升级的包
pip list -o

# 查看兼容问题
# 在下载安装一些标准库的时候,需要考虑到兼容问题
# 一些标准库的安装可能需要依赖其他的标准库,会存在版本相冲突等问题
# 先用下面这条命令行来检查一下是否会有冲突的问题存在
pip check package_name

# 指定国内源来安装
pip install -i https://pypi.douban.com/simple/ package_name

# 想要下载某个包到指定的路径下,下载包但是不安装
pip download package_name -d "某个路径"

# 生成requirements.txt,记录依赖包版本
pip freeze > requirements.txt

# 批量安装第三方库
pip install -r requirements.txt

pip换源

如果你没有用Anaconda,而是直接使用安装包安装的python。

pip配置稳定的国内镜像源

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

华为云:https://repo.huaweicloud.com/repository/pypi/simple

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/

方法1(永久更改)

进入我的电脑,输入

%APPDATA%

按下回车,自动转到一个文件夹

在这里,我们新建一个文件夹,命名为pip

在这个文件夹里,新建pip.ini文件,内容:

[global]
time-out = 60
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

[install]
trusted-host = tsinghua.edu.cn

方法2(永久更改)

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

方法3(临时性使用)

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

Pycharm

Pycharm中文网:点我查看

Pycharm历史版本下载(建议2021.3.1):点我去下载

Pycharm破解:点我查看

Pycharm设置python解释器

使用Anaconda虚拟环境

image-20230914181628086

选择好了以后,将对应的python解释器设置为当前项目的主解释器。

New Project

新建项目

模型训练环境

安装cuda和cudnn

本次环境搭建基于单卡GPU环境,使用的显卡为3070Ti。

首先输入以下命令查看显卡驱动以及cuda支持的版本。

nvidia-smi.exe

输出了形如以下的内容

C:\Users\xiaojingge>nvidia-smi.exe
Sun Jan  7 09:15:46 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.84                 Driver Version: 545.84       CUDA Version: 12.3     |

其中 Driver Version 表示显卡驱动版本为545.84,CUDA Version 表示支持的cuda版本为12.3,表明了安装的cuda版本不能大于这个版本。

本次我安装的cuda版本和cudnn版本为:

cuda_11.2.0_460.89_win10.exe

cudnn-11.2-windows-x64-v8.1.1.33

相关下载地址为:

Nvidia驱动下载地址:https://www.nvidia.cn/geforce/drivers/

Cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive

Cudnn下载地址:https://developer.nvidia.com/rdp/cudnn-archive

注意:cudnn下载要求必须登录nvidia账号,可以去注册个账号,已有账号的话直接登录即可

下载好cuda的安装包后,点击exe文件安装即可。

安装好以后,将对应的路径添加进环境变量中:

安装好cuda以后,系统会自动将 CUDA_PATH 和 CUDA_PATH_V11_2 添加进环境变量。

# 还需要将以下内容添加进path中
%CUDA_PATH_V11_2%\bin;
%CUDA_PATH_V11_2%\libnvvp;
%CUDA_PATH_V11_2%\extras\CUPTI\libx64;
%CUDA_PATH_V11_2%\bin\win64;
%CUDA_PATH_V11_2%\include;
%CUDA_PATH_V11_2%\common\lib\x64;
%CUDA_PATH_V11_2%\lib\x64;

对于cudnn,只需要将下载的压缩包解压,将对应的文件复制到cuda对应的目录下面即可。

# 一般有三个文件夹
bin
include
lib
# 只需要将这三个文件夹复制粘贴到主目录即可

完成上述操作后,打开cmd控制台,输入 nvcc -V,查看对应的cuda版本信息,验证是否安装成功。

C:\Users\xiaojingge>
C:\Users\xiaojingge>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0

安装相关依赖

安装依赖之前,记得安装Anaconda,毕竟是python的集成环境,便于切换虚拟环境,适配各个版本的python,管理等。

安装Tensorflow相关的依赖

30系显卡只支持cuda 11.0及以上版本,但很多tensorflow项目用的仍然是1.1x版本,这些版本需要cuda10或者以下版本,这就导致在30系显卡上无法正常运1.1x版本的tensorflow,最近几天我也因为这个问题头疼不已,网上一番搜索之后发现了一个编译过后可用的tensorflow-gpu-1.15版本,在3070Ti上完美运行,特此记录以防丢失。

先把包放上 点我下载 ,提取码:q28r,下载之后安装这个文件(python版本为3.7)。

# 注意切换到对应虚拟环境中,我创建的虚拟环境名称为:tf1_15_cuda11_2
pip install xxx.whl

然后使用conda安装对应的依赖包

# 注意切换到对应的虚拟环境中,我创建的虚拟环境名称为:tf1_15_cuda11_2
conda install cudatoolkit=11.2.1 cudnn=8.1.0

安装成功后,编写测试代码验证是否可用。

import tensorflow as tf

print(tf.test.is_gpu_available())

如果结果打印True表示tensorflow-gpu检测到了GPU,可用。

安装Pytorch相关的依赖

需要安装与当前cuda版本适配的pytorch版本。

# 本人机器安装依赖版本如下
pip install torch==1.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html  

经过一段时间就安装好了,安装好了以后可以通过编写python代码验证一下

# 导入torch模块
import torch
# 打印cuda是否可用,是否能够检测到GPU
print(torch.cuda.is_available())

如果输出True就没有问题。

0

评论区