赞
踩
5 深度学习案例直观理解
https://pytorch.org/get-started/previous-versions/
进入此网站,可以看到很多安装命令
1 conda安装
如果使用conda安装,把conda的安装源切换到国内的源,怎么修改,如下
修改源之后,可以在上述网站中找到想要安装的版本,也可以参考我的版本
安装命令:(conda版本)
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 -c pytorch
2 无conda安装
安装命令:
pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 -i http://mirrors.aliyun.com/pypi/simple/
(切记,无论是哪儿种安装,请先关闭vpn进行安装)
在上述网站,提供的只有conda的GPU安装
打开任务管理器里面的性能,找到下面GPU 显示NVIDIA的GPU就是有GPU
如果执行上面命令报错或者看不到上面图片信息,就是驱动不对
具体办法有博主有写,具体博客我就不放了,防止侵权
人工智能计算领域的领导者 | NVIDIA这是官网安装驱动的地方
如果已经修改可忽略
可以用anaconda创建一个虚拟环境,在虚拟环境中安装GPU版本
查看当前存在的所有conda环境 conda env list
创建虚拟环境 conda create -n pytorch_gpu python=3.8(这是我自己的,你可以修改名字还有python版本)
切换虚拟环境 conda activate pytorch_gpu(后面跟的是你创建的的虚拟环境的名字)
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
API文档:
torch的基本API
torch — PyTorch 2.1 documentation
torch的封装的深度学习算子API
torch.nn — PyTorch 2.1 documentation
torch的深度学习算子以函数形式的使用展示
torch.nn.functional — PyTorch 2.1 documentation
torch模型优化器相关的API
torch.optim — PyTorch 2.1 documentation
简单的使用API如下代码
- import torch
- import numpy as np
-
-
- def t1():
- # 创建tensor对象方法
-
- v1 = torch.rand(2, 3, 4) # 在0到1之间的浮点数取值填充
- print(v1.shape) # torch.Size([2, 3, 4])
-
- py_v2 = [[1.0, 1.32], [2.3, 3.2], [5.2, 324.2]]
- v2 = torch.tensor(py_v2)
- print(v2.shape) # torch.Size([3, 2])
- py_v2[0][1] = 100
- print(py_v2)
- print(v2) # 不变, 不与列表共享内存, 和原来没有关系
-
- np_v3 = np.random.randint(10, size=(2, 3)) # 随机取10以内的数字
- v3 = torch.from_numpy(np_v3)
- print(v3.shape) # torch.Size([2, 3])
- np_v3[0][1] = 100
- v3[1][1] = -100
- print(v3)
- # tensor和numpy都会改变, pytorch目的是替代numpy的, 底层就是numpy, 区别是支持GPU
- print(np_v3) # 创建的tensor对象和入参numpy对象共用一个内存地址
-
-
- def t2():
- # tensor转换为numpy
- v1 = torch.rand(2, 3)
- print(v1)
- np_v1 = v1.numpy() # v1必须在cpu上, v1不涉及到梯度的计算
- print(np_v1)
-
- v2 = torch.rand(2, 3)
- print(v2)
- np_v2 = v2.detach().cpu().numpy() # detach梯度截断, cpu就是如果是GPU,就把对象数据copy到cpu上,cpu则不变
- print(np_v2)
-
- v3 = torch.rand(1)[0] # 一个标量tensor
- print(v3)
- print(v3.shape) # torch.Size([])
- np_v3 = v3.detach().cpu().numpy() # detach梯度截断, cpu就是如果是GPU,就把对象数据copy到cpu上,cpu则不变
- print(np_v3)
- print(v3.item()) # 仅支持是一个标量的tensor, 是一个普通的python浮点数类型
-
-
- if __name__ == '__main__':
- t2()

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。