机器学习----PyTorch入门
PyTorchPyTorch是一个开源的python机器学习库PyTorch的前身是Torch,其底层和Torch框架一样,使用Python重新写了很多内容更加灵活,支持动态图,是一个以Python优先的深度学习框架,不仅能实现强大的GPU加速,同时还支持动态神经网络。张量PyTorch中所有的操作都是在张量的基础上进行的,可以说是PyTorch的基本单位一、 张量的定义1. 创建随机的张量初始化
·
PyTorch
-
PyTorch是一个开源的python机器学习库
-
PyTorch的前身是Torch,其底层和Torch框架一样,使用Python重新写了很多内容
-
更加灵活,支持动态图,是一个以Python优先的深度学习框架,不仅能实现强大的GPU加速,同时还支持动态神经网络。
张量
PyTorch中所有的操作都是在张量的基础上进行的,可以说是PyTorch的基本单位
一、 张量的定义
1. 创建随机的张量
初始化一个符合正态分布的张量
randn()方法参数:
- 张量的维度
import torch
torch.randn(2,3)
2. 创建全0或全1的张量(类似numpy)
zeros()
zeros_like()
ones()
ones_like()
a = torch.zeros(2,3)
b = torch.ones(2,3)
w = torch.tensor([[2,3],[2,4],[2,5]])
c = torch.zeros_like(w)
d = torch.ones_like(w)
print(a)
print(b)
print(w)
print(c)
print(d)
3. 获取张量的 大小 or 尺寸 or 维度
张量.size()
4. 查看张量的数据类型
张量.dtype
5. 创建张量时指定类型
a = torch.zeros(2,3,dtype=torch.float32)
print(a)
print(a.dtype)
6. 创建指定值的张量
import torch
w = torch.tensor([5.5,2])
7. 定义的张量如果想能够自动计算梯度,需要添加requires_grad=True
torch.tensor([5.5,2],requires_grad=True)
二、张量的计算
1. 加法
- 相加的张量维度必须相等
- 张量中相同的地方相加
- 同样适用于减法、乘法和除法
x = torch.ones(2,2)
y = torch.ones(2,2)
z = x + y
print(x)
print(y)
print(z)
2. 减法
x = torch.ones(2,2)
y = torch.ones(2,2)
z = x - y
print(x)
print(y)
print(z)
3. 乘法
x = torch.ones(2,2)
y = torch.ones(2,2)
z = x * y
print(x)
print(y)
print(z)
4. 除法
x = torch.ones(2,2)
y = torch.ones(2,2)
z = x / y
print(x)
print(y)
print(z)
三、张量的切片
从0开始 左闭环 不带最后一个
x = torch.rand(5,3)
print(x)
数据:
# 全部行的第一、二列(从0开始 左闭环 不带最后一个)
print(x[:,0:2])
# 第一行的第一列
print(x[1,1])
四、张量的形变
元素不变的情况下改变行数和列数,类似numpy的reshape
view()方法参数:
- 必须保证和原张量的维度相乘一样 类似
- 4 * 4 = 16 转 16 转 2 * 8 = 16
x = torch.randn(4,4)
y = x.view(16)
z = x.view(2,8)
print(x)
print(y)
print(z)
五、 Numpy和Tensor互转
张量转numpy
numpy()方法
a = torch.ones(5)
print(a)
b = a.numpy()
print(type(b))
numpy转张量
torch.from_numpy()方法参数:
- numpy的ndarray数组
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
print(type(b))
点击阅读全文
更多推荐
所有评论(0)