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")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值