快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)

本文基于服务器端环境展开,使用的虚拟终端为Xshell

miniconda

miniconda是Anaconda的轻量版,仅包含Conda和Python,如果只做深度学习,可使用miniconda。

[注]:Anaconda、Conda与Miniconda

  • Conda:创建和管理包的工具,支持创建和切换虚拟环境
  • Anaconda:集成了Conda、Python和科学包的发行版本,包含数理统计常用的包
  • Miniconda:仅包含Conda和Python

下载

1、切换到安装目录:默认安装在当前目录下

2、下载shell脚本

wget --user-agent="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12" -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
  • --user-agent:设置代理,以浏览器的身份请求,否则会反爬机制过滤导致数据包丢失。user-agent的介绍见这篇博文。
  • -c:断点续传。
  • Miniconda3-latest-Linux-x86_64.sh:待下载文件的名称
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/:清华下载源
  • Miniconda3-latest-Linux-x86_64.sh:待下载文件的名称。可以访问清华下载源,根据系统环境选择合适的版本。系统的版本、架构等信息可通过uname -a命令查看。

命令执行完成后,通过ls进行确认。

安装

使用bash命令执行已下载的.sh文件进行安装。

bash Miniconda3-latest-Linux-x86_64.sh

命令执行过程中,根据提示操作即可(敲回车–>阅读协议–>输入yes同意协议–>输入安装路径–>输入yes进行初始化)。

激活

执行source ~/.bashrc命令或重新登录服务器。

行首出现(base)则表示激活成功。

可通过以下命令设置是否默认进入base环境:

#修改默认配置
conda config --set auto_activate_base false # 默认不进入base环境
conda config --set auto_activate_base true # 默认进入base环境

验证

执行命令conda --help,若打印指令说明则说明安装成功。

配置国内镜像源

1、查询配置文件所在路径:conda config --show-sources

2、更新配置文件,以下配置仅供参考(可能失效)

channels:
  - defaults
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
show_channel_urls: True

Conda的基本操作

1、创建虚拟环境:conda create --name [env_name]

2、激活虚拟环境:conda activate [env_name]

3、退出环境:ctrl+D

4、查看环境列表:conda env list

5、查看当前环境中的包:conda list

6、导出环境配置为.yaml文件:conda env export > environment.yaml

7、通过.yaml文件安装相关依赖:conda env create -f environment.yaml

Pytorch

安装

1、查看驱动所支持的最高CUDA API版本版本:执行命令nvidia-smi,表格首行-“CUDA Version”

※如 CUDA Version: 12.6

若环境中安装了CUDA ToolkitAnaconda,也可尝试这篇博文中的另外两种方法。

2、获取安装命令

  • 在这个页面的“INSTALL PYTORCH”一栏配置可选项(推荐使用pip安装)。

    ※Q:如何选择Compute Platform?

    答:可直接点选与CUDA Version最接近的选项。以下为本人习惯的做法,也可参考:

    • 在download.pytorch.org/whl/torch/检索与上一步骤中“CUDA Version”最接近的版本。

    • 替换下一步骤中下载链接的“cuxxx”

    如:当前版本为12.6,ctrl+F检索关键词“cu126”,发现没有匹配结果,那么继续尝试“cu125”、“cu124”以此类推。通过这个方法,可以得到当前最接近的版本为12.4,那么我们的下载命令就是:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

  • 复制生成的命令(在最后一行)

    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
    

3、安装:执行上述命令

若下载速度较慢,可尝试使用国内的PyPI下载源。以阿里云镜像为例:

  • 单次使用

    在上述命令末尾加上参数-i http://mirrors.aliyun.com/pypi/simple --trusted-host pypi.douban.com

    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 -i http://mirrors.aliyun.com/pypi/simple --trusted-host pypi.douban.com
    

验证

1、执行语句python,进入python命令行

2、依次执行以下语句:

import torch # 导入pytorch库
torch.cuda.is_available() # 如返回True,说明当前显卡可用

Jupyter Notebook

安装

若已安装Anaconda环境,可以跳过这一步。

注意⚠️

若希望将Jupyter的访问连接转移到XManager,请在启动Jupyter前确保XManager可以正常运行,且能被Xshell调起。

安装命令如下:

pip install jupyter

验证:jupyter notebook,若能启动,说明安装正常。

在本机浏览器访问使用

1、生成配置文件:jupyter notebook --generate-config

该命令会生成一个.py格式的配置文件,并返回文件的路径

2、设置jupyter的密码:jupyter notebook password

3、查看Hash密钥:vim ~/.jupyter/jupyter_server_config.json

4、修改步骤一生成的配置文件

c.ServerAPP.ip = '*' # 允许所有ip皆可访问
c.ServerAPP.password = 'argon2:$argon2id$v=xx$m=xxx,t=xxx,p=xxxxx' #步骤三的密钥
c.ServerAPP.open_browser = False # 禁止自动打开浏览器  
c.ServerAPP.port = 8888 # 设置运行端口  
c.ServerAPP.allow_remote_access  = True # 允许远程访问

在vim编辑器中查找配置项的方法:

  • 在查看模式输入/+查询内容+回车
  • 查找下一个结果:n
  • 查找上一个结果:N

5、在Xshell中配置SSH隧道

  • 在左侧会话列表右键当前会话,打开“属性”窗口
  • 在左侧“类别”一栏选择“连接-SSH-隧道”
  • 在“TCP/IP转移”栏添加一条规则,“侦听端口”和“目标端口”都填步骤四中配置的c.ServerAPP.port参数值,其它参数不用改
  • “X11转移”栏中,取消勾选“转发X11连接到”
  • 点击确定。此时设置不会生效,需要重新连接服务器

在这里插入图片描述

6、启动:jupyter notebook

该命令将启动notebook和Jupyterlab。

可以使用screen命令将Jupyter服务挂到后台执行,例如:

screen -S JupyterServer #创建并进入会话
jupyter notebook #启动。ctrl+D可以退出会话(进程将被挂起到后台运行)
screen -dr JupyterServer #恢复会话

7、访问:在本地浏览器中通过以下url访问

  • lab:http://127.0.0.1:port/lab
  • notebook:http://127.0.0.1:port/tree

port为步骤四的c.ServerAPP.port,password为步骤二中设置的密码

大功告成!

参考

  • Linux安装conda - 知乎
  • Ubuntu wget 403_安装ubuntu24.04服务器报403错误-CSDN博客
  • Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
  • 【pip 安装】国内 pip 镜像源换源方法以及 pip 基本操作-CSDN博客
  • PyTorch
  • conda和pip安装流程、源配置、常用命令 | Anaconda 、Miniconda 和 conda 的区别 | conda和pip的区别_miniconda和conda的区别-CSDN博客
  • User-Agent代理的作用(最易懂!!)_user-agent的作用-CSDN博客
  • 远程linux服务器中安装jupyter通过本地浏览器访问使用_服务器jupyter 本地浏览器访问-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01-硬件入门学习/嵌入式教程-CH340C使用教程

前言 CH340C广泛应用于DIY项目和嵌入式开发中,用于USB数据转换和串口通信。本文将详细介绍CH340C的基本功能、引脚接线及使用方法。 CH340C简介 CH340C是一款USB转TTL电平转换器,可以将电脑的USB数据转换成串口数据,方便与单片机&#xff…

PID 控制算法(二):C 语言实现与应用

在本文中,我们将用 C 语言实现一个简单的 PID 控制器,并通过一个示例来演示如何使用 PID 控制算法来调整系统的状态(如温度、速度等)。同时,我们也会解释每个控制参数如何影响系统的表现。 什么是 PID 控制器&#xf…

C语言数组详解:从基础到进阶的全面解析

在C语言中,数组是一种基本的数据结构,用于存储多个相同类型的数据。数组的引入使得C语言能够高效地存储和操作大量数据。在任何一个C语言程序中,数组都发挥着极其重要的作用。无论是在算法实现、数据存储、还是在复杂程序的设计中&#xff0c…

vulfocus/fastjson-cnvd_2017_02833复现

漏洞概述 Fastjson 是阿里巴巴开发的一个高性能的 Java 库,用于将 Java 对象转换成 JSON 格式(序列化),以及将 JSON 字符串转换回 Java 对象(反序列化)。 fastjson在解析json的过程中,支持使用type字段来指…

【unity游戏开发之InputSystem——05】PlayerInput组件的介绍(基于unity6开发介绍)

文章目录 前言一、认识PlayerInput1、PlayerInput是什么?2、主要工作原理:3、好处:二、添加PlayerInput组件三、PlayerInput参数相关1、Actions:行为2、Default Scheme:默认启用哪个控制方案3、Auto-Switch:自动切换控制方案4、Default Map:默认行为映射方案5、Ui Input…

Android GLSurfaceView 覆盖其它控件问题 (RK平台)

平台 涉及主控: RK3566 Android: 11/13 问题 在使用GLSurfaceView播放视频的过程中, 增加了一个播放控制面板, 覆盖在视频上方. 默认隐藏setVisibility(View.INVISIBLE);点击屏幕再显示出来. 然而, 在RK3566上这个简单的功能却无法正常工作. 通过缩小视频窗口可以看到, 实际…

【2024 - 年终总结】叶子增长,期待花开

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言论博客创作保持2024的记录清单博客科研开源工作生活 总结与展望互动致谢参考 前言…

TangoFlux 本地部署实用教程:开启无限音频创意脑洞

一、介绍 TangoFlux是通过流匹配和 Clap-Ranked 首选项优化,实现超快速、忠实的文本到音频生成的模型。 本模型由 Stability AI 提供支持🚀 TangoFlux 可以在单个 A40 GPU 上在 ~3 秒内生成长达 34.1kHz 的立体声音频。 二、部署 安装方式非常简单 1…

ThreeJS示例教程200+【目录】

Three.js 是一个强大的 JavaScript 库,旨在简化在网页上创建和展示3D图形的过程。它基于 WebGL 技术,但提供了比直接使用 WebGL 更易于使用的API,使得开发者无需深入了解 WebGL 的复杂细节就能创建出高质量的3D内容。 由于目前内容还不多,下面的内容暂时做一个占位。 文章目…

AIGC的企业级解决方案架构及成本效益分析

AIGC的企业级解决方案架构及成本效益分析 一,企业级解决方案架构 AIGC(人工智能生成内容)的企业级解决方案架构是一个多层次、多维度的复杂系统,旨在帮助企业实现智能化转型和业务创新。以下是总结的企业级AIGC解决方案架构的主要组成部分: 1. 技术架构 企业级AIGC解决方…

Blazo-Blazor Web App项目结构

让我们还是从创建项目开始,来一起了解下Blazor Web App的项目情况 创建项目 呈现方式 这里我们可以看到需要选择项目的呈现方式,有以上四种呈现方式 ● WebAssembly ● Server ● Auto(Server and WebAssembly) ● None 纯静态界面静态SSR呈现方式 WebAs…

我谈概率论与数理统计的知识体系

学习概率统计二十多年后,在廖老师的指导下,厘清了各章之间的关系。本来就是一条线两个分支,脉络很清晰。 分支一:从随机现象到样本空间到随机事件再到概率。 从随机事件到随机变量:为了进行定量的数学处理&#xff0…

检查w-form-select 组件是否正确透传了 visible-change 事件

文章目录 1. 下拉框的组件2. 点击下拉框时的逻辑(1)handleVisibleChange 方法(2)getIdentifies 方法 3. 选择关联识别点时的逻辑(1)onRelatedChange 方法 4. 相关 UI 更新5. 总结 在这段代码中,…

校验收货地址是否超出配送范围实战3(day09)

优化用户下单功能,加入校验逻辑,如果用户的收货地址距离商家门店超出配送范围(配送范围为5公里内),则下单失败。 提示: ​ 1. 基于百度地图开放平台实现(https://lbsyun.baidu.com/&#xff09…

Linux应用编程(五)USB应用开发-libusb库

一、基础知识 1. USB接口是什么? USB接口(Universal Serial Bus)是一种通用串行总线,广泛使用的接口标准,主要用于连接计算机与外围设备(如键盘、鼠标、打印机、存储设备等)之间的数据传输和电…

【优选算法】7----三数之和

来了来了,他来了,又是学习算法的一天~ 今天的嘉宾是中等难度的算法题----三数之和! ------------------------------------------begin------------------------------------ 题目解析: 哇趣!又是给了一个数组&#…

深度学习|表示学习|卷积神经网络|参数共享是什么?|07

如是我闻: Parameter Sharing(参数共享)是卷积神经网络(CNN)的一个重要特性,帮助它高效地处理数据。参数共享的本质就是参数“本来也没有变过”。换句话说,在卷积层中,卷积核的参数&…

DeepSeek-R1:性能对标 OpenAI,开源助力 AI 生态发展

DeepSeek-R1:性能对标 OpenAI,开源助力 AI 生态发展 在人工智能领域,大模型的竞争一直备受关注。最近,DeepSeek 团队发布了 DeepSeek-R1 模型,并开源了模型权重,这一举动无疑为 AI 领域带来了新的活力。今…

递归的本质

字节面试题叠罗汉,很遗憾没想出来,看了答案挺巧妙的,但是居然是个案例题。。。 复习一下递归的本质 正面解决问题 利用子问题来解决 可以通过规约推导的,基本可以用递归解决! 在写这道算法题时,我想规…

【力扣:新动计划,编程入门 —— 题解 ②】

—— 25.1.23 1512. 好数对的数目 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] nums[j] 且 i < j &#xff0c;就可以认为这是一组 好数对 。 返回好数对的数目。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1,1,3] 输出&#xff1a;4 解释&#xff…