赞
踩
PyTorch是在2017年1月由Facebook推出的。它是经典机器学习库Torch框架的一个端口,主要编程语言为python。PyTorch“曾经”的优点是动态图,现在的优点是开源代码和开源社区。
PyTorch是一个年轻的框架。2017年1月28日,PyTorch 0.1版本正式发布,这是Facebook公司在机器学习和科学计算工具Torch的基础上,针对Python语言发布的全新的深度学习工具包。PyTorch类似NumPy,并且支持GPU,有着更高级而又易用的功能,可以用来快捷地构建和训练深度神经网络。一经发布,PyTorch便受到深度学习和开发者们广泛关注和讨论。经过一年多的发展,目前PyTorch已经成为机器学习和深度学习者重要的研究和开发工具之一。
张量是PyTorch里的基本运算单位,与numpy的ndarray相同都表示一个多维的矩阵。与ndarray最大的区别在于Tensor能使用GPU加速,而ndarray只能用在CPU上。
1、导入torch库
- import torch
-
- a = torch.tensor([1,2,3],dtype=int)
- b = torch.tensor([4,5,6],dtype=float)
- print(a)
- print(a.dtype)
- print(b)
- //结果
- //tensor([1, 2, 3])
- //torch.int64 64位的int类型
- //tensor([4., 5., 6.], dtype=torch.float64)
2、数据的维度
tensor = torch.tensor([[1,2,3],[4,5,6]]) print(tensor.ndim) //结果 //2
3、数据的形状
tensor = torch.tensor([[1,2,3],[4,5,6]]) print(tensor.shape) print(tensor.size()) //结果 //torch.Size([2, 3]) //torch.Size([2, 3])
4、基础运算
- sample = torch.rand(3, 2)
- print(sample)
-
- # 求总和
- print(torch.sum(sample))
-
- # 求最小值
- print(torch.min(sample))
-
- # 求最小值所在的位置(索引)
- print(torch.argmin(sample))
-
- # 求最大值所在的位置(索引)
- print(torch.argmax(sample))
-
- # 求平均值
- print(torch.mean(sample))
-
- # 求中位数
- print(torch.median(sample))
-
- # 求开方
- print(torch.sqrt(sample))
-
- # 求平方
- print(sample ** 2)
- //结果
- tensor([[0.9740, 0.4381],
- [0.9116, 0.7061],
- [0.9465, 0.0322]])
- tensor(4.0085)
- tensor(0.0322)
- tensor(5)
- tensor(0)
- tensor(0.6681)
- tensor(0.7061)
- tensor([[0.9869, 0.6619],
- [0.9548, 0.8403],
- [0.9729, 0.1793]])
- tensor([[0.9487, 0.1919],
- [0.8310, 0.4986],
- [0.8960, 0.0010]])
- import torch
-
- a = torch.tensor([1,2,3],dtype=int)
- b = torch.tensor([4,5,6],dtype=float)
- print(a)
- print(a.dtype)
- print(b)
- //结果
- //tensor([1, 2, 3])
- //torch.int64 64位的int类型
- //tensor([4., 5., 6.], dtype=torch.float64)
- def load_array(data_arrays, batch_size, is_train=True): #@save
- # 构造一个PyTorch数据迭代器
- # torch.utils.data.TensorDataset(Dataset):包装数据和目标张量的数据集,直接传入张量参数即可(*tensor)
- # 该类通过每一个 tensor 的第一个维度进行索引。因此,该类中的 tensor 第一维度必须相等。
- dataset = data.TensorDataset(*data_arrays)
-
- # 通过DataLoader类从dataset中选取数据,每次读取大小为batch_size
- return data.DataLoader(dataset, batch_size, shuffle=is_train)
-
- batch_size = 10
- # 传入张量数组,返回一个可迭代的张量组
- data_iter = load_array((features, labels), batch_size)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。