重学 PyTorch Tutorial
按照《动手学习深度学习》的章节组织,参照 PyTroch Tutorial 和 Docs 来重新学习 PyTorch,为了今后基于 BERT 的 NLI 研究打基础。
数据操作
内容参考自 Deep Learning with PyTorch: A 60 Munute Blitz 之 What is PyTorch (https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html)
张量(Tensor)
张量与 Numpy 的 ndarray 非常相似。
无初始化地创建一个矩阵,如下所示:
>>> import torch
>>> torch.empty(2, 3)
tensor([[1.4905e+03, 6.6702e-43, 3.1060e-15],
[4.2039e-45, 0.0000e+00, 0.0000e+00]])
创建一个随机初始化地矩阵,如下所示:
>>> torch.rand(2, 3)
tensor([[0.4724, 0.9018, 0.1788],
[0.9966, 0.6328, 0.8021]])
创建一个零矩阵,指定其数据类型为长整型(torth.long),torch.long 是 torch.int64 的别名(https://pytorch.org/docs/stable/tensor_attributes.html#torch.torch.dtype),如下所示:
>>> torch.zeros(2, 3, dtype=torch.long)
tensor([[0, 0, 0],
[0, 0, 0]])
直接从 list 中创建张量,如下所示:
>>> torch.tensor([0, 1.1, 1.2])
tensor([0.0000, 1.1000, 1.2000])
还可以在现存的张量上创建,此时也可以指定数据的类型。torch.double 是 torch.float64 的别名,torch.float 是 torch.float32 的别名(https://pytorch.org/docs/stable/tensor_attributes.html#torch.torch.dtype)。如下所示:
>>> x = torch.zeros(2, 3)
>>> x = x.new_ones(1, 2, dtype=torch.double) # new_* methods take in sizes
>>> print(x)
tensor([[1., 1.]], dtype=torch.float64)
>>> x = torch.randn_like(x, dtype=torch.float) # override dtype!
>>> print(x) # result has the same size
tensor([[-1.8443, -3.2089]])
通过 size() 函数得到张量的尺寸,如下所示:
>> x = torch.zeros(2,3)
>> x.size()
torch.Size([2, 3])
操作符(operator)
原文地址:https://www.cnblogs.com/fengyubo/p/12238950.html
时间: 2024-10-31 11:36:45