《PyTorch 深度学习实践》第5讲 用PyTorch实现线性回归

示例

import numpy as np
import torch
import matplotlib.pyplot as plt

x_data = torch.tensor([[1.0], [2.0], [3.0]])  # shape:(3,1)
y_data = torch.tensor([[2.0], [4.0], [6.0]])  # (3,1)


class LinearModel(torch.nn.Module):
    def __init__(self):
        super(LinearModel, self).__init__()
        self.linear = torch.nn.Linear(1, 1)  # 输入维度为1,即特征数。输出维度为1
        # nn.Linear类包含两个成员张量:weight和bias

    def forward(self, x):  # 重写父类forward函数,不能少,每次传参时会自动调用该函数
        y_pre = self.linear(x)  # 传入x计算预测值y_pre。
        return y_pre


model = LinearModel()  # 实例化模型

criterion = torch.nn.MSELoss(reduction='sum')  # 评价标准为MSE
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # 随机梯度下降优化器,可以更新梯度以优化参数。学习率为0.01
loss_list = []
for epoch in range(400):
    # 1、前向传播求y_pred
    y_pred = model(x_data)  # 传入参数,自动调用类里面的forward函数。
    # 对象后面直接加括号传参,可以理解为调用了__call__()函数,然后到forward,再到linear(x)
    # 2、计算损失loss
    loss = criterion(y_pred, y_data)
    if epoch >= 50:
        loss_list.append(loss.item())
    # print(epoch, loss.item())

    optimizer.zero_grad()
    # 3、反向传播,计算出梯度
    loss.backward()
    # 4、更新参数w和b
    optimizer.step()

print('w=', model.linear.weight.item())
print('b=', model.linear.bias.item())

x_test = torch.tensor([[4.0]])
y_test = model(x_test)
print('y_pred:', y_test.data.item())
plt.plot(range(50, 400), loss_list)
plt.xlabel('Epoch')
plt.ylabel('Cost')
plt.title('SGD')
plt.grid()
plt.show()
w= 1.9906320571899414
b= 0.02129540964961052
y_pred: 7.983823776245117

ekjfnekjfn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习 PyTorch 编程需要以下几个步骤: 1. 了解 PyTorch 的基本概念,如张量 (Tensor) 和自动求导 (Autograd)。 2. 学习 PyTorch 的基本操作,如创建张量、矩阵运算和计算梯度。 3. 学习如何使用 PyTorch 实现常见的机器学习模型,如线性回归、逻辑回归和卷积神经网络 (CNN)。 4. 尝试实现一些简单的项目,如图像分类、语音识别和自然语言处理 (NLP)。 5. 不断学习和实践,并参考其他的资源,如官方文档、博客文章、教程和书籍。 希望这些建议能帮助你熟悉 PyTorch 编程。 ### 回答2: 要熟悉PyTorch编程,以下是一些步骤和建议。 首先,了解PyTorch的基本概念和特点是很重要的。PyTorch是一个基于Torch的开源机器学习库,它提供了强大的张量计算功能和自动微分机制,适用于构建各种深度学习模型。 其次,熟悉PyTorch的安装和配置。可以通过在官方网站上下载并安装适合自己操作系统和版本的PyTorch包。还可以选择与自己使用的其他工具,如Anaconda或Jupyter Notebook,进行集成。 然后,学习PyTorch的基本语法和API。可以通过阅读官方文档、参考书籍或在线教程来学习。重点掌握张量操作、自动微分、模型构建等方面的知识。同时,可以通过实际编写代码并进行调试和测试来加深理解。 接下来,尝试使用PyTorch构建简单的深度学习模型。可以从一些经典的教程或示例代码开始,如图像分类、文本生成等任务。通过实际运行和调试代码,可以更好地理解PyTorch的使用方法和工作流程。 此外,参与社区和开源项目也是提高PyTorch编程能力的一种方式。可以加入PyTorch的官方论坛或邮件列表,与其他开发者交流经验和问题。也可以参与开源项目的贡献,提供自己的代码和解决方案。 最后,不断学习和实践是提高熟练度的关键。深度学习PyTorch技术一直在不断发展,可以关注最新的研究和进展,尝试实践一些挑战性的项目。通过不断地学习和实践,可以不断提升自己的PyTorch编程能力。 ### 回答3: 要熟悉PyTorch编程,可以遵循以下几个步骤: 1. 学习基本概念:首先了解PyTorch是什么以及它的基本概念。PyTorch是一个基于Python深度学习框架,主要用于构建神经网络模型。熟悉PyTorch的张量(Tensors)和自动求导(Autograd)机制是学习的第一步。 2. 学习官方文档和教程:PyTorch有详细的官方文档提供给开发者学习和参考。阅读官方文档和教程可以帮助你了解PyTorch的不同模块、函数和类的用法。官方文档中还有一些示例代码,可以用来练习和理解PyTorch的编程。 3. 尝试示例代码:找一些PyTorch的示例代码,可以从GitHub或其他代码库中找到。这些示例代码通常涵盖了PyTorch常见的使用场景,比如图像分类、目标检测等。通过阅读和运行这些代码,你可以学习如何使用PyTorch构建和训练模型。 4. 自己实现项目:通过自己实现一个小型项目来加深对PyTorch的理解和应用。可以选择一个简单的问题,比如手写数字分类,然后使用PyTorch构建一个神经网络来解决这个问题。在实施的过程中,你可以遇到一些问题和挑战,通过解决这些问题你可以更加熟练地使用PyTorch。 5. 探索深入学习:一旦你熟悉了基本的PyTorch编程和模型构建,可以开始探索更深入的主题,如PyTorch的高级特性、模型优化技术等。读一些论文和教程可以帮助你了解最新的研究进展和PyTorch在实际应用中的技术。 总之,要熟悉PyTorch编程,需要坚持学习和实践。通过学习文档、模仿示例代码、独立实施项目,你将逐渐掌握PyTorch的编程技巧和实践经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值