栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch基础知识

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch基础知识

1、tensor和numpy array之间的相互转换

# tensor和numpy array之间的相互转换
import numpy as np

g = np.array([[1,2,3],[4,5,6]])
h = torch.tensor(g)
print(h)
i = torch.from_numpy(g)
print(i)
j = h.numpy()
print(j)

tensor([[1, 2, 3],
[4, 5, 6]])
tensor([[1, 2, 3],
[4, 5, 6]])
[[1 2 3]
[4 5 6]]

注意:torch.tensor创建得到的张量和原数据是不共享内存的,张量对应的变量是独立变量。
而torch.from_numpy()和torch.as_tensor()从numpy array创建得到的张量和原数据是共享内存的,张量对应的变量不是独立变量,修改numpy array会导致对应tensor的改变。

2、扩展&压缩tensor的维度:squeeze

k = torch.rand(2,3)
o = torch.add(k,1)
print(o)
print(o.shape)
#unsqueeze扩展维度
r = o.unsqueeze(1)
print(r.shape)
s = r.squeeze(1)
print(s.shape)

tensor([[1.2852, 1.5366, 1.3711],
[1.0107, 1.4375, 1.3035]])
torch.Size([2, 3])
torch.Size([2, 1, 3])
torch.Size([2, 3])

注意:squeeze()方法的作用是移除tensor中维度大小为1的维度;unsqueeze可以任意扩展维度大小为1的维

3、GPU的设置有两种常见的方式:

# 方案一:使用os.environ,这种情况如果使用GPU不需要设置
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'

# 方案二:使用“device”,后续对要使用GPU的变量用.to(device)即可
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号