一文搞懂模型环境配置(pytorch、windows)

简介

很多小白开始跑深度学习的时候都会有一个疑问:我从github上clone的项目怎么跑不了?

本文讲述的就是如何进行相应项目的环境配置(pytorch)

虚拟环境

对于不同的项目,我们需要用到不同的依赖和环境,有时还需要同一库的不同版本,难道每次跑都要重装吗?

当然不是,我们通过为不同项目创建不同环境来解决。

在python中创建环境有下面几个方式

【Python】创建虚拟环境的四种方式(venv | pipenv | conda | poetry)_创建python虚拟环境-优快云博客

PyTorch

在创建好虚拟环境后,我们切换到虚拟环境,这时候对于依赖库的安装都是针对这个环境而言的。

pytorch拥有cpu版本和gpu版本,gpu版本需要安装cuda加速

cpu版本可以直接通过

pip install torch

来安装,而gpu版本则要通过官网获取安装命令。

我们首先进入到pytorch中文

PyTorch - PyTorch 中文

然后往下滑到这个界面,在这里就可以选择相应的版本

如果需要安装以前的版本(当前时间2024.9.26,指2.4以前),则点击上方“安装以前版本的pytorch”

往下滑找到相应版本的安装指令(在cmd或者powershell中使用)。

CUDA

如果pytorch安装的是gpu的版本,我们还需要安装cuda。

进入官网

NVIDIA Developer

在右上角搜索版本号

点击进入相应下载界面

按照提示选择完后点击下载即可。

这里有一个问题:python版本和torch版本都可以通过切换虚拟环境实现,但是cuda是外部计算平台,我们如何切换不同的版本呢?

我们通过修改环境变量中的地址实现切换。

比如说这里有两个cuda的版本

我在命令行中查看现在使用的版本为12.0

在搜索栏中输入环境变量

点击环境变量

找到CUDA_PATH,将12.0修改为11.8(在安装时需要命好名)

找到path变量打开

将11.8上移到12.0前,path变量主要是告诉系统可执行文件在哪里,搜寻可执行文件会从上到下寻找,而其他环境变量的作用是告诉依赖库的位置

点击确定后重新打开命令行

切换成功

### PyTorch框架入门教程 #### 创建兼容的Python环境 为了顺利使用PyTorch,建议在Python 3.6或更高版本环境中工作。为每个项目建立独立的虚拟环境有助于防止不同软件包间的冲突[^1]。 #### 安装PyTorch 安装可以通过官方文档推荐的方式完成,通常包括通过Anaconda或者pip工具来获取最新稳定版的PyTorch。对于特定硬件配置(如CUDA版本),应选择相匹配的安装命令。 #### 初识张量(Tensor) 张量是PyTorch中的基本数据结构,类似于NumPy数组但具有更强大的功能,特别是能够利用GPU加速运算。创建简单的一维或多维张量非常直观: ```python import torch # 创建一个未初始化的2×3张量 x = torch.empty(2, 3) # 创建全零矩阵 y = torch.zeros(2, 3) # 使用随机数填充新张量 z = torch.rand(2, 3) ``` #### 动态计算图 不同于某些其他深度学习平台使用的静态计算图定义方式,PyTorch采用了更加灵活的动态计算图机制。这意味着可以在运行时构建并修改计算过程,这使得调试更容易也更适合快速原型开发[^2]。 #### 自动求导(Autograd) 自动微分是现代深度学习不可或缺的一部分。PyTorch内置了`autograd`模块用于追踪所有操作,并能自动生成梯度以便后续优化参数。只需设置`.requires_grad=True`即可开启跟踪模式: ```python a = torch.ones(2, requires_grad=True) b = a + 3 c = b.sum() c.backward() # 计算梯度 print(a.grad) # 输出a相对于最终结果c的偏导数值 ``` #### 转置操作 当处理二维张量时,可能需要用到转置函数`t()`来进行行列互换的操作,其效果等同于调用`torch.transpose(input,0,1)`方法[^4]。 #### 构建模型 借助于`nn.Module`类及其子组件,可以方便地搭建各种类型的神经网络架构。每一层都可以作为一个单独的对象实例化,并组合成完整的前向传播路径。 ```python class Net(torch.nn.Module): def __init__(self): super().__init__() self.fc1 = torch.nn.Linear(in_features=784, out_features=500) self.fc2 = torch.nn.Linear(in_features=500, out_features=10) def forward(self, x): x = torch.relu(self.fc1(x)) x = self.fc2(x) return x ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值