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

news2024/11/26 4:44:06

【深度学习】深度学习之巅:在 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权限:
sudo yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
  • 进入到opt目录,到OpenSSL官方网站下载源码,解压并进入软件包目录:
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
  • 编译安装
sudo ./config prefix=/usr/local/openss1
上面的报错可以直接用: sudo ./config
sudo make && sudo make install
  • 配置lib库:
echo "/usr/local/lib64/" | sudo tee -a  /etc/ld.so.conf
sudo ldconfig
  • 备份旧版本openssl
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
  • 将新版本软链接/usr/bin/
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
  • 检查openssl version
openssl version

二、安装python3.10🍈

  • 安装依赖,使用root权限
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并解压
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
  • 编译安装
cd Python-3.10.6
sudo ./configure --prefix=/usr/local/python3
sudo make &&  sudo make install

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

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

在这里插入图片描述

三、 验证pip3 install 是否成功🍅

pip3 install numpy
pip3 install numpy

安装成功如下:

在这里插入图片描述


在docker内部安装🏭

  • 容器内的Centos7操作系统

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

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

安装命令如下:

yum install openssl

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

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

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

docker commit 容器id 打包后的镜像名:版本号

之后,再用如下命令:

  • 方式一

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

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

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

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

docker run -it --rm --entrypoint /bin/bash reqpython // --rm退出即删除容器

使用dockerfile安装🚀

  • 使用dockerfile+requirements.txt安装

dockerfile文件内容如下:

# 使用基础镜像 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文件如下:

numpy==1.26.4
torch_geometric==2.5.3
torch==2.3.0
torchvision==0.18.0
torchaudio==2.3.0

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

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

docker build -t reqpython .     // reqpython是你给打包镜像起的名字

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

  • 方式一

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

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

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

docker run -it --rm --entrypoint /bin/bash reqpython //先在后台启动

运行结果如下:

在这里插入图片描述

运行文件✈️

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

命令如下:

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稳定的有序遍历的方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1805735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】(基础篇三) —— 创建数据库和表

管理数据库和表 管理数据库 创建数据库 在MySQL中,创建数据库的SQL命令相对简单,基本语法如下: CREATE DATABASE 数据库名;如果你想避免在尝试创建已经存在的数据库时出现错误,可以添加 IF NOT EXISTS 子句,这样如…

transformer - 注意力机制

Transformer 的注意力机制 Transformer 是一种用于自然语言处理任务的模型架构,依赖于注意力机制来实现高效的序列建模。注意力机制允许模型在处理一个位置的表示时,考虑输入序列中所有其他位置的信息,而不仅仅是前面的几个位置。这种机制能…

学会python——九九乘法表+斐波那契数列(python实例一)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 pycharm编译 2、九九乘法表 2.1 代码构思 2.2 代码示例 2.3 运行结果 3、斐波那契数列 3.1 代码构思 3.2 代码示例 3.3 运行结果 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对…

Mac清洁神器CleanMyMac2024一键轻松解决电脑垃圾问题

【CleanMyMac】苹果mac电脑垃圾清理软件 大家好!今天我要给大家种草一个超级好用的苹果mac电脑垃圾清理软件,那就是 CleanMyMac。相信很多人都遇到过电脑运行速度变慢、存储空间不足的问题,而这款软件就是解决这些问题的救星!让我…

UML交互图-协作图

概述 协作图和序列图都表示出了对象间的交互作用,但是它们侧重点不同。序列图清楚地表示了交互作用中的时间顺序,但没有明确表示对象间的关系。协作图则清楚地表示了对象间的关系,但时间顺序必须从顺序号获得。序列图常常用于表示方案&#…

物理机宕机后,虚拟机出现(无响应),虚拟机无法开机

物理机宕机后,虚拟机出现(无响应),虚拟机无法开机 解决方案;看存储池中,文件是否还存在;如果存在,新建虚拟机,加载存储池中的磁盘,重启虚拟机就可以了 重新创…

matlab---app

一 基础 标签和信号灯没有回调函数 clc,clear,close all %清理命令区、工作区,关闭显示图形 warning off %消除警告 feature jit off %加速代码运行 ysw{i}i %循环赋值 celldisp(ysw) %显示元胞数组ysw.y1{1}[1,2] …

【机器学习300问】108、什么是多项式回归模型?

一、多项式回归是什么 (1)举例说明 假设你经营着一家农场,想要根据土地面积来预测作物的产量。如果你只用线性模型(即),你可能会发现它并不足以描述实际的产量情况,因为实际产量可能会随着土地…

美国演员工会SAG-AFTRA 要求人工智能在广告中使用演员声音需征得同意并付费

SAG-AFTRA 的新豁免允许在人工智能生成的广告中使用演员的声音,但需要同意、补偿和安全措施 美国演员工会(SAG-AFTRA)推出了一项新的豁免,以保护会员免受未经授权的人工智能在广告中使用其声音的影响。动态人工智能音频广告豁免定…

添加Microsoft.VisualStudio.TestTools.UnitTesting命名空间

创建“单元测试项目”,则自动添加 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

《Brave New Words 》2.1 学生为什么要写作

Part II: Giving Voice to the Social Sciences 第二部分:为社会科学发声 Art is a collaboration between God and the artist, and the less the artist does the better. —Andr Gide 艺术是上帝与艺术家的合作,艺术家做得越少越好。 —安德烈纪德 A …

Docker 常用命令以及镜像选择

目录 1.Docker基本组成 2.镜像选择 2.1、镜像推荐选择方案 2.2版本选择 3.Docker 命令 3.1镜像管理 拉取镜像: 列出镜像: 删除镜像: 构建镜像: 3.2容器管理 运行容器 列出运行中的容器和所有容器 停止容器 启动重启…

微服务开发与实战Day04

一、网关路由 网关&#xff1a;就是网络的关口&#xff0c;负责请求的路由、转发、身份校验。 在SpringCloud中网关的实现包括两种&#xff1a; 1. 快速入门 Spring Cloud Gateway 步骤&#xff1a; ①新建hm-gateway模块 ②引入依赖pom.xml(hm-gateway) <?xml version…

(2024,自监督 ViT,全监督 ViT,损失可视化,MAE,RC-MAE,自蒸馏,EMA)可视化自监督 ViT 的损失景观

Visualizing the loss landscape of Self-supervised Vision Transformer 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0 摘要 2 基础&#xff1a;MAE 和 RC-MAE 3 损失景观 3.1 分…

matlab GUI界面设计

【实验内容】 用MATLAB的GUI程序设计一个具备图像边缘检测功能的用户界面&#xff0c;该设计程序有以下基本功能&#xff1a; &#xff08;1&#xff09;图像的读取和保存。 &#xff08;2&#xff09;设计图形用户界面&#xff0c;让用户对图像进行彩色图像到灰度图像的转换…

【java、lucene、python】互联网搜索引擎课程报告二:建立搜索引擎

一、项目要求 建立并实现文本搜索功能 对经过预处理后的500个英文和中文文档/网页建立搜索并实现搜索功能对文档建立索引&#xff0c;然后通过前台界面或者已提供的界面&#xff0c;输入关键字&#xff0c;展示搜索结果前台可通过网页形式、应用程序形式、或者利用已有的界面…

SQLserver通过CLR调用TCP接口

一、SQLserver启用CLR 查看是否开启CRL&#xff0c;如果run_value1&#xff0c;则表示开启 EXEC sp_configure clr enabled; GO RECONFIGURE; GO如果未启用&#xff0c;则执行如下命令启用CLR sp_configure clr enabled, 1; GO RECONFIGURE; GO二、创建 CLR 程序集 创建新项…

【Java】单例设计模式

单例设计模式简介 目录 1.单例设计模式是什么&#xff1f;2.单例设计模式设计方法饿汉式懒汉式 3.单例设计模式的应用任务管理器(仅有一个页面&#xff0c;不可多开)Runtime运行环境 1.单例设计模式是什么&#xff1f; 设计模式 是解决 特定问题的优秀设计方式之一。 单例设计…

mathematica中针对三维图中的颜色和填充透明度进行指定

颜色指定使用的命令为&#xff1a;PlotStyle 填充的透明度使用的命令为&#xff1a;FillingStyle 示例代码&#xff1a; Clear["Global*"] Plot3D[{Sin[x^2 y], Sin[x^2 - y]}, {x, -2, 2}, {y, -2, 2}, PlotStyle -> {Directive[Red, Specularity[White, 100…

人体部位眼耳手腿分类数据集4376张4类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;4376 分类类别数&#xff1a;4 类别名称:["Ears","Eyes&quo…