【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

大家好 我是寸铁👊

总结了一篇【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨

喜欢的小伙伴可以点点关注 💝


引言 🍎

在当今快速发展的深度学习领域,构建一个稳定、高效的开发环境是每个研究人员和开发者的必备条件。而在 CentOS 7 这样的操作系统上,如何将最新的Python 3.10PyTorch 2.3.0焕发出最佳性能,是一项需要技巧和专业知识的挑战。本文将引导您通过一系列高级步骤和最佳实践,打造一个完美无缺的深度学习环境,让您的项目在技术之巅驰骋!


前言🍐

本文是笔者踩过无数坑后亲测出来的安装教程,按照这个教程走下来,可以正常使用pip3 install XX安装第三方包,笔者在安装过程看过近30篇安装教程博客,很多的安装步骤走下来经常会报错。例如:大家用pip3 install XX发现报错ssl ,然后你开始查找配置ssl证书,发现无论是选择任何的信任源都发现不行,最后发现是ssl版本过旧,所以,本文优先更新openssl,确保pip3 install XX成功!

如果你也是深度学习新手,正苦恼如何搭建环境,跟着笔者一步步走,过程非常丝滑!


安装场景🌈

  • Centos7操作系统

虚拟机、服务器常见安装场景

  • 容器内的Centos7操作系统

容器内部安装Centos7镜像后,也是一个Linux,安装操作教程相同,笔者亲测有效。

  • 使用dockerfile+requirements.txt安装

本质上是docker帮助我们一行行执行命令,其实也是一样的,需要注意dockerfile的编写规范,详情见下方的dockerfile文件,dockerfile也是笔者跑通安装环境的一个范本,笔者亲测有效。


在虚拟机、服务器安装🗽

一、升级openssl🍉

  • 下载必要的依赖包,使用root权限:
shell 复制代码
sudo yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
  • 进入到opt目录,到OpenSSL官方网站下载源码,解压并进入软件包目录:
shell 复制代码
cd /opt
sudo wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate 
sudo tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
  • 编译安装
shell 复制代码
sudo ./config prefix=/usr/local/openss1
上面的报错可以直接用: sudo ./config
sudo make && sudo make install
  • 配置lib库:
shell 复制代码
echo "/usr/local/lib64/" | sudo tee -a  /etc/ld.so.conf
sudo ldconfig
  • 备份旧版本openssl
shell 复制代码
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
  • 将新版本软链接/usr/bin/
shell 复制代码
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
  • 检查openssl version
shell 复制代码
openssl version

二、安装python3.10🍈

  • 安装依赖,使用root权限
shell 复制代码
sudo yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
  • 进入目录下载python3.10.6并解压
shell 复制代码
cd /opt
sudo wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
sudo tar -zxvf Python-3.10.6.tgz
  • 编译安装
shell 复制代码
cd Python-3.10.6
sudo ./configure --prefix=/usr/local/python3
sudo make &&  sudo make install

本文指定安装目录/usr/local/python3

  • 创建软链接,centos默认安装有python2.7版本,本文两个版本共存:
shell 复制代码
sudo ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
  • 验证安装是否成功
shell 复制代码
python3

三、 验证pip3 install 是否成功🍅

pip3 install numpy
shell 复制代码
pip3 install numpy

安装成功如下:


在docker内部安装🏭

  • 容器内的Centos7操作系统

容器内部安装Centos7镜像后,也是一个Linux,安装操作教程相同,笔者亲测有效。

注意:在容器内安装Centos7用上面的教程前,要先装一下openssl

安装命令如下:

shell 复制代码
yum install openssl

后续遇到xx: not command,用yum install xx即可。

之后,按照上面的教程一步步走即可安装成功。

安装后,如果需要将容器打包成镜像,则用如下命令:

shell 复制代码
docker commit 容器id 打包后的镜像名:版本号

之后,再用如下命令:

  • 方式一

运行容器后正常启动状态,使用如下命令。

shell 复制代码
docker run -itd --entrypoint /bin/bash reqpython 
//先在后台启动 reqpython为刚才打包的镜像名

docker ps //查看刚才run的容器名 如:test 
docker exec -it test /bin/bash //再进入容器内部
  • 方式二

只是做测试用,测试完后,不想保留容器,使用如下命令:

shell 复制代码
docker run -it --rm --entrypoint /bin/bash reqpython // --rm退出即删除容器

使用dockerfile安装🚀

  • 使用dockerfile+requirements.txt安装

dockerfile文件内容如下:

shell 复制代码
# 使用基础镜像 CentOS 7
FROM centos:7

# 安装openssl
RUN yum install -y openssl

# 安装必要的依赖
RUN yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel \
    ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel \
    bzip2-devel libffi-devel wget tar sudo

# 升级 OpenSSL
WORKDIR /opt
RUN wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate && \
    tar -zxvf openssl-1.1.1q.tar.gz && \
    cd openssl-1.1.1q && \
    ./config prefix=/usr/local/openssl && \
    make && make install && \
    echo "/usr/local/lib64/" | tee -a /etc/ld.so.conf && \
    ldconfig && \
    mv /usr/bin/openssl /usr/bin/openssl.bak && \
    ln -s /usr/local/bin/openssl /usr/bin/openssl

# 安装 Python 3.10
WORKDIR /opt
RUN wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz && \
    tar -zxvf Python-3.10.6.tgz && \
    cd Python-3.10.6 && \
    ./configure --prefix=/usr/local/python3 && \
    make && make install && \
    ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3 && \
    ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3

# 将requirements.txt文件复制到容器中
COPY requirements.txt /opt/requirements.txt

# 安装 Python 依赖包
RUN pip3 install -r /opt/requirements.txt

requirements.txt文件如下:

python 复制代码
numpy==1.26.4
torch_geometric==2.5.3
torch==2.3.0
torchvision==0.18.0
torchaudio==2.3.0

注意: 保证requirements.txt文件和dockerfile文件在同一个文件夹下

然后,使用如下命令打包镜像

shell 复制代码
docker build -t reqpython .     // reqpython是你给打包镜像起的名字

最后,使用如下命令进入到容器内部:

  • 方式一

运行容器后正常启动状态,使用如下命令。

shell 复制代码
docker run -itd --entrypoint /bin/bash reqpython //先在后台启动
docker ps //查看刚才run的容器名 如:test 
docker exec -it test /bin/bash //再进入容器内部
  • 方式二

只是做测试用,测试完后,不想保留容器,使用如下命令:

shell 复制代码
docker run -it --rm --entrypoint /bin/bash reqpython //先在后台启动

运行结果如下:

运行文件✈️

后面需要将本地的py文件放到容器内部跑,则需要使用docker cp命令将py文件复制到容器内部的路径下再用python3运行即可。

命令如下:

shell 复制代码
docker cp /local/path/directory container_name:/path/to/directory

参考文章🚊

博主写得很好,博客简洁高效

https://zhuanlan.zhihu.com/p/661077162


结语🌅

通过本文的指引和技巧,您已经了解了在 CentOS 7 上构建Python 3.10PyTorch 2.3.0的深度学习环境所需的关键步骤和优化方法。在您的掌控之下,这个环境将成为您探索人工智能的强大工具,为您的研究和项目注入新的活力。愿您在深度学习之路上驾驭风云,创造出令世界瞩目的成果。


看到这里的小伙伴,恭喜你又掌握了一个技能👊

希望大家能取得胜利,坚持就是胜利💪

我是寸铁!我们下期再见💕


往期好文💕

保姆级教程

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go-Zero】手把手带你在goland中创建api文件并设置高亮


报错解决

【Go-Zero】Error: user.api 27:9 syntax error: expected ':' | 'IDENT' | 'INT', got '(' 报错解决方案及api路由注意事项

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)报错解决方案

【Go-Zero】type mismatch for field "Auth.AccessSecret", expect "string", actual "number"报错解决方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ')' | 'KEY', got 'IDENT'报错解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

相关推荐
booooooty4 分钟前
基于Spring AI Alibaba的多智能体RAG应用
java·人工智能·spring·多智能体·rag·spring ai·ai alibaba
翻滚吧键盘5 分钟前
opensuse tumbleweed上安装显卡驱动
linux
PyAIExplorer32 分钟前
基于 OpenCV 的图像 ROI 切割实现
人工智能·opencv·计算机视觉
风口猪炒股指标34 分钟前
技术分析、超短线打板模式与情绪周期理论,在市场共识的形成、分歧、瓦解过程中缘起性空的理解
人工智能·博弈论·群体博弈·人生哲学·自我引导觉醒
cui_win1 小时前
【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
linux·网络·tcp/ip
ai_xiaogui1 小时前
一键部署AI工具!用AIStarter快速安装ComfyUI与Stable Diffusion
人工智能·stable diffusion·部署ai工具·ai应用市场教程·sd快速部署·comfyui一键安装
Tipriest_1 小时前
Python关键字梳理
python·关键字·keyword
聚客AI2 小时前
Embedding进化论:从Word2Vec到OpenAI三代模型技术跃迁
人工智能·llm·掘金·日新计划
weixin_387545642 小时前
深入解析 AI Gateway:新一代智能流量控制中枢
人工智能·gateway
im_AMBER2 小时前
学习日志05 python
python·学习