pytorch入门与实战----pytorch入门(代码片段)

luckyplj luckyplj     2022-12-04     420

关键词:

1.深度学习框架

技术图片

 

pytorch与其他框架的比较

技术图片

pytorch的学习方法:

技术图片

课程安排:

技术图片

PyTorch是一个基于Python的科学计算库,它有以下特点:

  • 类似于NumPy,但是它可以使用GPU
  • 可以用它定义深度学习模型,可以灵活地进行深度学习模型的训练和使用

2.tensor的运算

Tensor类似与NumPy的ndarray,唯一的区别是Tensor可以在GPU上加速运算。

(1)加法

x = torch.rand(5,3)
y = torch.rand(5,3)
z=x+y
print(x)
print(y)
print(z)

效果图:

技术图片技术图片技术图片

(2)Torch Tensor和NumPy array会共享内存,所以改变其中一项也会改变另一项。

把Torch Tensor转变成NumPy Array

# Torch Tensor和NumPy array会共享内存,所以改变其中一项也会改变另一项。
# 把Torch Tensor转变成NumPy Array
a = torch.ones(5)
b = a.numpy()
print(a)
print(b)
b[1] = 2
print(a)

效果图:

技术图片

(3)在Torch Tensor和NumPy array之间相互转化非常容易。

# 把NumPy ndarray转成Torch Tensor
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)

效果图:

技术图片

3.利用Pytorch的nn库来构建神经网络

这次我们使用PyTorch中nn这个库来构建网络。 用PyTorch autograd来构建计算图和计算gradients, 然后PyTorch会帮我们自动计算gradient。

import torch.nn as nn
import torch
N, D_in, H, D_out = 64, 1000, 100, 10

# 随机创建一些训练数据
x = torch.randn(N, D_in)
y = torch.randn(N, D_out)

model = torch.nn.Sequential(
    torch.nn.Linear(D_in, H, bias=False),  # w_1 * x + b_1
    torch.nn.ReLU(),
    torch.nn.Linear(H, D_out, bias=False),
)

torch.nn.init.normal_(model[0].weight)
torch.nn.init.normal_(model[2].weight)

# model = model.cuda()

loss_fn = nn.MSELoss(reduction=sum)

learning_rate = 1e-6
for it in range(500):
    # Forward pass
    y_pred = model(x)  # model.forward()

    # compute loss
    loss = loss_fn(y_pred, y)  # computation graph
    print(it, loss.item())

    # Backward pass
    loss.backward()

    # update weights of w1 and w2
    with torch.no_grad():
        for param in model.parameters():  # param (tensor, grad)
            param -= learning_rate * param.grad

    model.zero_grad()

效果图:

技术图片

4.自定义nn modules

我们可以定义一个模型,这个模型继承自nn.Module类。如果需要定义一个比Sequential模型更加复杂的模型,就需要定义nn.Module模型。

 

import torch.nn as nn
import torch

N, D_in, H, D_out = 64, 1000, 100, 10

# 随机创建一些训练数据
x = torch.randn(N, D_in)
y = torch.randn(N, D_out)

# 自定义模型,定义一个类继承torch.nn.Module
class TwoLayerNet(torch.nn.Module):
    def __init__(self, D_in, H, D_out):
        super(TwoLayerNet, self).__init__()
        # define the model architecture
        self.linear1 = torch.nn.Linear(D_in, H, bias=False)
        self.linear2 = torch.nn.Linear(H, D_out, bias=False)

    def forward(self, x):
        y_pred = self.linear2(self.linear1(x).clamp(min=0))
        return y_pred


model = TwoLayerNet(D_in, H, D_out)
# 定义损失函数
loss_fn = nn.MSELoss(reduction=sum)
learning_rate = 1e-4
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)

for it in range(500):
    # Forward pass
    y_pred = model(x)  # model.forward()

    # compute loss
    loss = loss_fn(y_pred, y)  # computation graph
    print(it, loss.item())

    optimizer.zero_grad()
    # Backward pass
    loss.backward()

    # update model parameters
    optimizer.step()

 

pytorch入门实战|第p2周:彩色图片识别

难度:新手入门⭐语言:Python3、Pytorch 查看详情

pytorch入门实战|第p4天:猴痘病识别(代码片段)

本周的代码相对于上周增加指定图片预测与保存并加载模型这个两个模块,在学习这个两知识点后,时间有余的同学请自由探索更佳的模型结构以提升模型是识别准确率,模型的搭建是深度学习程度的重点。 查看详情

pytorch入门实战|第p5周:运动鞋识别

查看详情

pytorch入门实战:基于gan生成简单的动漫人物头像(代码片段)

...础知识,可参考我的学习笔记或观看李宏毅老师课程Pytorch中DataLoader和Dataset的基本用法反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释TensorBoard快速入门(Pytorch使用TensorBoard)本文内容本文参考李彦宏老师2021年度的... 查看详情

pytorch入门实战|第p6天:好莱坞明星识别

查看详情

pytorch入门实战|第p6天:好莱坞明星识别

查看详情

pytorch入门实战|第p1周:实现mnist手写数字识别

查看详情

pytorch入门教程(代码片段)

Pytorch学习总结:Pytorch学习笔记总结_大数据与人工智能技术分享-CSDN博客Pytorch实战总结:pytorch实战教学(一篇管够)B站深度学习Pytorch实战总结1.张量Tensor张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTo... 查看详情

神经网络与深度学习pytorch入门——张量(代码片段)

...通过参考飞桨AIStudio-人工智能学习与实训社区 教程进行pytorch相关学习。目录一.概念:张量、算子二.使用pytorch实现张量运算1.2.1创建张量1.2.1.1指定数据创建张量1.2.1.2指定形状创建1.2.1.3指定区间创建1.2.2张量的属性1.2.2.1张... 查看详情

深度学习为什么选择pytorch?史上最详细pytorch入门教程(代码片段)

目录前言一、Pytorch介绍1.常见的深度学习框架2.Pytorch框架的崛起3.Pytorch与Tensorflow多方位比较二、Tensors1.Tensor的创建2.Tensor的操作3.Tensor与Numpy三、Autograd的讲解1.模型中的前向传播与反向传播2.利用autograd计算梯度四、构建神经网络... 查看详情

pytorch-入门与安装(代码片段)

tensorflowvspytorch 现在关于深度学习的框架很多,详情请百度,或者参考本文参考资料1,本文对比两种; tensorflow是当前最流行的深度学习框架,但是pytorch有后来居上的意思,其实二者有一定联系;联系:都是基于计算图... 查看详情

pytorch怎么入门学习

pytorch怎么入门学习https://www.zhihu.com/question/55720139 查看详情

超详细pytorch入门教程(代码片段)

Pytorch入门教程(二)Pytorch入门教程(一)1.张量Tensor2.Pytorch中创建张量3.Pytorch中tensor的常用方法4.tensor的数据类型5.tensor的其他操作Pytorch入门教程(一)请参考:【超详细】Pytorch入门教程(一)... 查看详情

初识pytorch:从安装到入门,从入门到放弃(代码片段)

目录PyTorch安装配置安装验证PyTorchPyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Pytho... 查看详情

pytorch入门tenser与autograd(代码片段)

Tenser与Autograd对Tenser求导需要注意以下事项创建叶子节点(LeafNode)的Tenser,使用requires_gard参数指定是否记录对其的操作,以便之后利用backward()方法进行梯度求解。利用requires_gard_()方法修改Tenser的requires_gard属性... 查看详情

自然语言处理pytorch基础入门(必备基础知识)(代码片段)

PyTorch基础实践PyTorch基础安装PyTorch创建张量张量类型和大小张量操作索引,切片和连接张量和计算图CUDA张量练习Solutions总结PyTorch基础在本书中,我们广泛地使用PyTorch来实现我们的深度学习模型。PyTorch是一个开源、社区... 查看详情

有没有pytorch的高级应用教程推荐一下

深度学习与PyTorch入门实战教程百度网盘免费资源在线学习   链接:https://pan.baidu.com/s/1BQtdabkn-aj0SXVv3x62ww 提取码:r93i  深度学习与PyTorch入门实战教程9.卷积神经网络CNN8.过拟合7.神经网络与全连接层6.随机梯度下... 查看详情

pytorch从入门到精通100讲-pytorch张量从概念到应用(代码片段)

PyTorch张量的创建与基本类型0导读在我们不知道什么是深度学习计算框架时,我们可以把PyTorch看做是Python的第三方库,在PyTorch中定义了适用于深度学习的张量Tensor,以及张量的各类计算。就相当于NumPy中定义的Array和对应的科学... 查看详情