当前位置: 首页 > news >正文

【深度学习】深度学习之巅:在 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权限:
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稳定的有序遍历的方式

相关文章:

【深度学习】深度学习之巅:在 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 环境✨ 喜欢的小伙伴可以点点关注 &#…...

在docker容器中使用gdb调试python3.11的进程

gdb调试python进程的前提条件 安装python及python调试信息安装gdb工具安装python-gdb.py扩展 安装过程 我们使用docker来安装以上内容,Dockerfile文件内容如下: FROM docker.io/centos:7.4.1708# 安装依赖 RUN yum install -y -q epel-release &…...

堆排序要点和难点以及具体案例应用

堆排序(Heap Sort)是一种基于堆数据结构的排序算法。下面我将以分点表示和归纳的方式,结合相关数字和信息,详细描述堆排序的PTA(Programming and Testing Approach,编程与测试方法)。 1. 堆排序原理 堆排序是一种树形选择排序,利用了完全二叉树的性质,通过构建最大堆…...

pyspark中使用mysql jdbc报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决

报错信息: py4j.protocol.Py4JJavaError: An error occurred while calling o33.load. : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 我的解决方法: 这个报错就是提示你找不到jar包,所以你需要去下载一个和你mysql版本匹配的j…...

对称加密系统解析

目录​​​​​​​ 1.概述 2. 对称密码类型 3. 对称加密优缺点 4. 对称加密算法 4.1 DES 4.2 3DES 4.3 AES ​​​​​​4.4 SM1 4.5 SM4 1.概述 对称加密,是指在加密和解密时使用同一秘钥的方式。秘钥的传送和保存的保护非常重要,务必不要让秘…...

初识 java 2

1. idea 的调试 1. 点击鼠标左键设置断点 2.运行到断点处 点击 或点击鼠标右键,再点击 使代码运行到断点处,得到 2. 输出到控制台 System.out.println(value);//输出指定的内容,并换行 value 要打印的内容System.out.print(value);…...

云端狂飙:Django项目部署与性能优化的极速之旅

Hello,我是阿佑,这次阿佑将手把手带你亲自踏上Django项目从单机到云端的全过程,以及如何通过Docker实现项目的无缝迁移和扩展。不仅详细介绍了Docker的基本概念和操作,还深入探讨Docker Compose、Swarm和Kubernetes等高级工具的使…...

GDPU JavaWeb 大结局篇(持续更新中)

GDPUJavaWeb程序设计复习,习题集,重点知识总结,一篇就够了。 实验复习 JavaWeb代码复习,在专栏也可查阅。 课后巩固习题 1 【单选题】下列说法正确的是( D ) A、在B/S结构中,结果应用软件发生了改变,就必须通知所有的客户端重新…...

Linux系统信息的查看

目录 前言一、系统环境二、查看系统IP地址信息2.1 ifconfig命令2.2 ip address命令 三、查看系统端口信息3.1 nmap命令3.2 netstat命令 四、查看系统进程信息4.1 ps命令4.2 kill命令 五、查看系统监控信息5.1 top命令5.2 df命令iostat命令5.3 sar命令 总结 前言 本篇文章介绍查…...

LE Audio音频广播新功能Auracast介绍

LE Audio音频广播新功能Auracast介绍 /*! \copyright Copyright (c) 2019-2022 Qualcomm Technologies International, Ltd. All Rights Reserved. Qualcomm Technologies International, Ltd. Confidential and Proprietary. \file audio_sources.h \defgroup audio_so…...

一文学习yolov5 实例分割:从训练到部署

一文学习yolov5 实例分割:从训练到部署 1.模型介绍1.1 YOLOv5结构1.2 YOLOv5 推理时间 2.构建数据集2.1 使用labelme标注数据集2.2 生成coco格式label2.3 coco格式转yolo格式 3.训练3.1 整理数据集3.2 修改配置文件3.3 执行代码进行训练 4.使用OpenCV进行c部署参考文…...

【设计模式】行为型设计模式之 策略模式学习实践

介绍 策略模式(Strategy),就是⼀个问题有多种解决⽅案,选择其中的⼀种使⽤,这种情况下我们 使⽤策略模式来实现灵活地选择,也能够⽅便地增加新的解决⽅案。⽐如做数学题,⼀个问题的 解法可能有…...

lua中大数相乘的问题

math.maxinteger * 2 --> -2 原因:math.maxinteger的二进制 : 0111111111111111111111111111111111111111111111111111111111111111 往左移位,最右加一个0,是 1111111111111111111111111111111111111111111111111111111111111…...

第一个SpringBoot项目

目录 💭1、新建New Project IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?🌟 2、下载JDK 17🌟 💭2、项目创建成功界面 1、目录 🌟 2、pom文件🌟 💭3、…...

Android 10.0 Launcher修改density禁止布局改变功能实现

1.前言 在10.0的系统rom定制化开发中,在关于Launcher3的定制化功能中,在有些功能需要要求改变系统原有的density屏幕密度, 这样就会造成Launcher3的布局变化,所以就不符合要求,接下来就来看下如何禁止改变density造成Launcher3布局功能 改变的实现 2.Launcher修改densit…...

CAN协议简介

协议简介 can协议是一种用于控制网络的通信协议。它是一种基于广播的多主机总线网络协议,常用于工业自动化和控制领域。can协议具有高可靠性、实时性强和抗干扰能力强的特点,被广泛应用于汽车、机械、航空等领域。 can协议采用了先进的冲突检测和错误检测…...

(二)JSX基础

什么是JSX 概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写UI模板的方式。 优势:1.HTML的声明式模版方法;2.JS的可编程能力 JSX的本质 JSX并不是标准…...

GB 38469-2019 船舶涂料中有害物质限量检测

船舶涂料是指涂于船舶各部位,能防止海水、海洋大气腐蚀和海生物附着及满足船舶特种要求的各种涂料的统称。 GB 38469-2019船舶涂料中有害物质限量检测项目: 测试指标 测试方法 挥发性有机化合物VOC GB 30981 甲苯 GB 24408 苯 GB 30981 甲醇 G…...

汇编:数组-寻址取数据

比例因子寻址: 比例因子寻址(也称为比例缩放索引寻址或基址加变址加比例因子寻址)是一种复杂的内存寻址方式,常用于数组和指针操作。它允许通过一个基址寄存器、一个变址寄存器和一个比例因子来计算内存地址。 语法 比例因子寻…...

ROS自带的OpenCV库和自己安装版本冲突问题现象及解决方法

文章目录 1. 问题现象1.1 编译过程警告1.2 程序运行报错 2. 分析问题原因3. 解决方法 1. 问题现象 1.1 编译过程警告 warning: lipopencv_improc.so.406, needed by /usr/local/lib/libopencv_xfeatures2d.so.4.6.0, may conflict with libopencv_imgproc.so.4.21.2 程序运行…...

html+CSS+js部分基础运用19

1. 应用动态props传递数据,输出影片的图片、名称和描述等信息【要求使用props】,效果图如下: 2.在页面中定义一个按钮和一行文本,通过单击按钮实现放大文本的功能。【要求使用$emit()】 代码可以截图或者复制黏贴放置在“实验…...

探索 Debian 常用命令:掌握 Linux 系统管理的重要一步

Debian 作为一个稳定、高效和安全的操作系统,广泛应用于服务器、桌面和嵌入式系统中。对于新手和经验丰富的系统管理员来说,熟练掌握 Debian 的常用命令是管理和维护系统的基础。本文将详细介绍一些在 Debian 系统中经常使用的命令,帮助读者更好地理解和操作这个强大的操作系…...

「C系列」C 作用域规则

文章目录 一、C 作用域规则二、案例1. 块作用域(Block Scope)2. 文件作用域(File Scope)3. 静态作用域(Static Scope)静态局部变量静态全局变量 4. 函数参数的作用域5. 结构体和联合体的作用域 三、相关链接…...

【机器学习基础】Python编程10:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机…...

【设计模式】结构型设计模式之 门面模式

介绍 门面模式(Facade Pattern)是一种常用的设计模式,属于结构型模式的范畴。它为子系统中的一系列接口提供一个简化的统一接口,即一个外观(Facade),从而使子系统更加容易使用。门面模式并不修…...

MAC地址简介

一、MAC和ip地址 很多同学只知道ip地址,同时也知道ip在网络通讯中的重要性,实际上要实现网络通信的话,除了ip地址外还需要MAC地址的配合,只有在这两种地址的配合之下才能完整的实现互联网的通信。但是由于MAC地址的使用&#xff0…...

五种网络IO模型

目录 前言 文件描述符 为什么要多种io模型 同步IO 1.阻塞IO 2.非阻塞IO 3.多路复用IO(事件驱动IO) select: poll: epoll: 4.信号驱动IO 异步IO 区别 前言 文件描述符 首先我们了解一下文件描述符是什么:…...

VSCode超过390万下载的请求插件

Thunder Client 是一款在 VSCode(Visual Studio Code)中非常受欢迎的 REST API 客户端插件,由Ranga Vadhineni开发,现在已经有超过390万的下载量。它允许开发者直接在编辑器内发送 HTTP 请求,查看响应。Thunder Client…...

前端 JS 经典:下载的流式传输

触发下载在浏览器中有两种方式:1. 客户端的方式 2. 服务器的方式 1. 服务器的方式 通过 a 元素链接到一个服务器的地址,然后需要后端人员配置,当用户点击按钮请求这个地址时,服务端给他加上一个响应头。Content-Disposition 设置…...

k8s面试题大全,保姆级的攻略哦(三)

目录 1、简述ETCD及其特点? 2、简述ETCD适应的场景? 3、简述什么是Kubernetes? 4、简述Kubernetes和Docker的关系? 5、简述Kubernetes中什么是Minikube、Kubectl、Kubelet? 6、简述Kubernetes常见的部署方式? 7、简述Kubernetes如何实现集群管理? 8、简述Kubern…...

网站丢失怎么解决/黄页网络的推广

1、发送请求 const export_excelfunction(){ axios({ method:“post”, url:url, responseType: “blob” }); }; 2、下载导出方法 const downLoadFilefunction(content,fileName){ var ele document.createElement(‘a’);// 创建下载链接 ele.download fileName;//设置下载…...

俄罗斯外贸常用网站/h5制作

控制标注哪些要素若要更精确地控制标注哪些要素和标注放置位置,您需要使用更高级的标注属性。具体而言,您可以调整标注哪些要素以及标注相对于要素的放置位置。有四种方法可控制需要标注哪些要素:1.设置控制标注在地图上放置顺序的标注优先级…...

网络运营者开展经营和服务活动必须遵守法律行政法规/什么是搜索引擎优化?

题目1-平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 2…...

哪里有做空包网站的/山西网站seo

作者:瀚高PG实验室 (Highgo PG Lab)- Kalath Python环境 本文中使用的环境是Python 3.6.4。还需要提前安装psycopg2模块,此模块用于连接PostgreSQL数据库。 pip install psycopg2 连接到PostgreSQL数据库并查询数据 首先引用…...

南昌网站推广策划/英文外链seo兼职在哪里找

卡西欧似乎要用一种全新的方式进军360度相机市场。 提到卡西欧(Casio)这个相机品牌,人们最先想到的就是自拍神器TR系列。不过,随着虚拟现实越来越火,很多老牌相机厂家都纷纷开始研发全景相机,而我们今天要介…...

网站seo公司/名风seo软件

基本概念: 对于一个类来说一个类应该只负责一项职责。 单一职责要做的事: 降低类的复杂度,一个类只负责一项职责提高类的可读性,可维护性降低变更引起的风险 另外注意: 当逻辑足够简单时,才可以在代码级别…...