Pytorch 代码备忘录

这篇博客详述了PyTorch中的关键操作,包括数据集转换、张量操作、随机数生成、nn.functional函数的使用,以及模型构建、参数查看与初始化、GPU支持等。通过实例展示了如何操作数据集、构建模型、初始化权重,并使用GPU加速计算。
摘要由CSDN通过智能技术生成

np.random.choice 可以用于随机抽取一定batch_size的下标:
mask = np.random.choice(X_train,batch_size,replace=True)
参考连接

数据集转换

torchvision.transforms.Compose() 可以囊括多个变换:

transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

张量操作

tensor.ndimension()返回维度的数量

a.ndimension()
Out[11]: 3

tensor.data 返回tensor的拷贝

>>> a.data
tensor([[ 0.6519, -0.6082],
        [-0.5330,  0.1412],
        [ 1.2613,  0.4818]])

tensor.grad 返回tensor的梯度

>>> print(a.grad)
None

torch.cat可以拼接tensor。

a
Out[64]: 
tensor([[-0.1757, -0.6009,  0.2321],
        [-0.8813,  0.1093,  1.0315]])
torch.cat((a,a),0)
Out[65]: 
tensor([[-0.1757, -0.6009,  0.2321],
        [-0.8813,  0.1093,  1.0315],
        [-0.1757, -0.6009,  0.2321],
        [-0.8813,  0.1093,  1.0315]])

torch.max返回(max_values, max_indices)的元组:

>>> a = torch.randn(4, 4)
>>> a
tensor([[-1.2360, -0.2942, -0.1222,  0.8475],
        [ 1.1949, -1.1127, -2.2379, -0.6702],
        [ 1.5717, -0.9207,  0.1297, -1.8768],
        [-0.6172,  1.0036, -0.6060, -0.2432]])
>>> torch.max(a, 1)
torch.return_types.max(values=tensor([0.8475, 1.1949, 1.5717, 1.0036]), indices=tensor([3, 0, 0, 1]))

torch.argmax(input,dim=1) 返回所选维度最大值的下标:

torch.flatten(input,start_dim=0,end_dim=-1) 可以用来展平tensor
start_dimend_dim表示扩展维度的范围。

In[3]:a = torch.randn(2,3,4)
In[4]:a
Out[4]: 
tensor([[[ 1.0730, -0.9822, -0.6728, -0.5907],
         [-0.9147, -0.7416, -0.4955, -0.4844],
         [-0.2957, -1.1425,  0.0435, -0.6442]],
        [[-0.6957,  0.6853, -0.1966,  1.5853],
         [ 1.3964,  2.2612, -2.2373,  0.3656],
         [ 0.5788, -1.4469, -0.8203, -0.4059]]])
In[5]: a.shape
Out[5]: torch.Size([2, 3, 4])
In[6]: a.size()
Out[6]: torch.Size([2, 3, 4])
In[7]: a.flatten(start_dim=1).shape
Out[7]: torch.Size([2, 12])
In[8]: a.flatten().shape
Out[8]: torch.Size([24])In[3]:a = torch.randn(2,3,4)
In[4]:a
Out[4]: 
tensor([[[ 1.0730, -0.9822, -0.6728, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值