PyTorch入门基础串讲

PyTorch的基本概念

Tensor

有时遇到的数据是很高维度的,很难使用矩阵或向量来描述,这时就用张量来描述任意维度的物体
Tensor与机器学习的关系

Tensor与机器学习的关系

我们使用tensor来对样本和模型进行描述

Tensor的类型

image-20210318181810970

Tensor的创建

在这里插入图片描述

Tensor创建编程实例

import torch
import numpy as np

"""
几种特殊的tensor
"""
a = torch.Tensor([[1, 2], [3, 4]])
print(a)
print(a.type())
"""
输出:
    tensor([[1., 2.],
            [3., 4.]])
    torch.FloatTensor
"""
#对比
a1 = np.array([[1, 2], [3, 4]])
print(a1)
"""
输出:
    [[1 2]
     [3 4]]
"""

b = torch.Tensor(2, 3)  # 定义一个2×3的二阶tensor
# 使用shape来定义时,初始值为随机值
print(b)
print(b.type())
"""
输出:
    tensor([[9.5461e-01, 4.4377e+27, 1.7975e+19],
            [4.6894e+27, 7.9463e+08, 5.0944e-14]])
    torch.FloatTensor
"""
c = torch.ones(2, 2)  # 定义一个2×2的二阶tensor,值全为“1”
print(c)
print(c.type())
"""
输出:
    tensor([[1., 1.],
            [1., 1.]])
    torch.FloatTensor
"""
d = torch.eye(2, 2)  # 定义一个2×2的二阶tensor,对角线值全为“1”,其他为“0”
print(d)
print(d.type())
"""
输出:
    tensor([[1., 0.],
            [0., 1.]])
    torch.FloatTensor
"""
e = torch.zeros(2, 2)  # 定义一个2×2的二阶tensor,值全为“0”
print(e)
print(e.type())
"""
输出:
    tensor([[0., 0.],
            [0., 0.]])
    torch.FloatTensor
"""
f = torch.zeros_like(b)  # 跟某个tensor拥有相同的shape,且值全为“0”
print(f)
print(f.type())
"""
输出:
    tensor([[0., 0., 0.],
            [0., 0., 0.]])
    torch.FloatTensor
"""

g = torch.ones_like(b)  # 跟某个tensor拥有相同的shape,且值全为“1”
print(g)
print(g.type())
print("+++++++++++++++++++++++++++++++++++++++++")

'''
输出:
    tensor([[1., 1., 1.],
            [1., 1., 1.]])
    torch.FloatTensor
'''

'''
随机
'''
h = torch.rand(2, 2)  # 随机生成某个shape的tensor
print(h)
print(h.type())
'''
输出:
    tensor([[0.9980, 0.0754],
            [0.2034, 0.8852]])
    torch.FloatTensor
'''
i = torch.normal(mean=0.0, std=torch.rand(5))
# 构造5组不同的高斯分布,均值为“0”和标准差随机
# 生成随机满足正态分布的值
print(i)
print(i.type())
'''
输出:
    tensor([-0.5050, -0.6762, -0.9310,  0.9907, -0.1264])
    torch.FloatTensor
'''

j = torch.normal(mean=torch.rand(5), std=torch.rand(5))
# 构造5组不同的高斯分布,均值和标准差随机
# 生成随机满足正态分布的值
print(j)
print(j.type())
'''
输出:
    tensor([0.9474, 0.6925, 0.1974, 0.1186, 1.5995])
    torch.FloatTensor
'''
k = torch.Tensor(2, 2).uniform_(-1, 1)
# 定义均匀分布
# 需要先指定tensor的大小,然后再定义(-1,1)之间的均匀分布
# 生成随机满足均匀分布的值
print(k)
print(k.type())
print("++
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来给你介绍一下 PyTorch基础入门教程。 PyTorch 是一个基于 Python 的科学计算库,它主要针对两类用户:NumPy 的替代品,可以利用 GPU 的性能进行计算;以及深度学习研究平台,提供了最大的灵活性和速度。 首先,你需要安装 PyTorch,可以通过以下命令进行安装: ``` pip install torch ``` 安装完成后,我们可以先来看一下 PyTorch 的张量(Tensor)。张量是 PyTorch 中最基本的数据结构,它可以表示任意维度的数组。通过以下代码,我们可以创建一个 2*3 的张量: ``` import torch x = torch.Tensor([[1, 2, 3], [4, 5, 6]]) print(x) ``` 接下来,我们可以看一下 PyTorch 中的自动求导机制。在 PyTorch 中,我们可以通过设置 `requires_grad` 来告诉 PyTorch 对某个张量进行自动求导。通过以下代码,我们可以计算出 $y=x^2$ 的导数: ``` import torch x = torch.tensor([2.], requires_grad=True) y = x ** 2 y.backward() print(x.grad) ``` 最后,我们可以来看一下 PyTorch 中的神经网络模块。通过以下代码,我们可以构建一个简单的全连接神经网络: ``` import torch.nn as nn class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 20) self.fc2 = nn.Linear(20, 2) def forward(self, x): x = self.fc1(x) x = nn.functional.relu(x) x = self.fc2(x) return x net = Net() ``` 以上就是 PyTorch基础入门教程,希望对你有所帮助。如果你想深入学习 PyTorch,可以参考官方文档和其他相关教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值