pytorch实现线性回归以及多元回归

PyTorch实现线性回归以及多元回归

在本文中,我们将介绍如何使用PyTorch实现线性回归和多元回归。我们将提供两个示例,一个是线性回归,另一个是多元回归。

示例1:线性回归

以下是使用PyTorch实现线性回归的示例代码:

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

# Generate random data
np.random.seed(0)
x = np.random.rand(100, 1)
y = 2 + 3 * x + np.random.rand(100, 1)

# Convert data to tensors
inputs = torch.from_numpy(x).float()
targets = torch.from_numpy(y).float()

# Define linear regression model
model = nn.Linear(1, 1)

# Define loss function
criterion = nn.MSELoss()

# Define optimizer
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

# Train the model
num_epochs = 1000
for epoch in range(num_epochs):
    # Forward pass
    outputs = model(inputs)
    loss = criterion(outputs, targets)

    # Backward and optimize
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    # Print progress
    if (epoch+1) % 100 == 0:
        print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))

# Plot the results
predicted = model(inputs).detach().numpy()
plt.plot(x, y, 'ro', label='Original data')
plt.plot(x, predicted, label='Fitted line')
plt.legend()
plt.show()

在这个示例中,我们首先生成了一些随机数据。然后,我们将数据转换为PyTorch张量,并定义了一个名为model的线性回归模型。接下来,我们定义了损失函数和优化器,并使用它们训练模型。最后,我们绘制了原始数据和拟合线。

示例2:多元回归

以下是使用PyTorch实现多元回归的示例代码:

import torch
import torch.nn as nn
import numpy as np

# Generate random data
np.random.seed(0)
x = np.random.rand(100, 3)
y = 2 + 3 * x[:,0:1] + 4 * x[:,1:2] + 5 * x[:,2:3] + np.random.rand(100, 1)

# Convert data to tensors
inputs = torch.from_numpy(x).float()
targets = torch.from_numpy(y).float()

# Define linear regression model
model = nn.Linear(3, 1)

# Define loss function
criterion = nn.MSELoss()

# Define optimizer
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

# Train the model
num_epochs = 1000
for epoch in range(num_epochs):
    # Forward pass
    outputs = model(inputs)
    loss = criterion(outputs, targets)

    # Backward and optimize
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    # Print progress
    if (epoch+1) % 100 == 0:
        print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))

# Print the learned coefficients
print('Learned coefficients:')
for name, param in model.named_parameters():
    if param.requires_grad:
        print(name, param.data)

在这个示例中,我们首先生成了一些随机数据。然后,我们将数据转换为PyTorch张量,并定义了一个名为model的多元回归模型。接下来,我们定义了损失函数和优化器,并使用它们训练模型。最后,我们打印了学习到的系数。

总结

在本文中,我们介绍了如何使用PyTorch实现线性回归和多元回归,并提供了两个示例说明。这些技术对于在深度学习模型中使用回归非常有用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytorch实现线性回归以及多元回归 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • pytorch seq2seq闲聊机器人beam search返回结果

    decoder.py “”” 实现解码器 “”” import heapq import torch.nn as nn import config import torch import torch.nn.functional as F import numpy as np import random from chatbot.attention impor…

    PyTorch 2023年4月8日
    00
  • pytorch中的pack_padded_sequence和pad_packed_sequence用法

    pack_padded_sequence是将句子按照batch优先的原则记录每个句子的词,变化为不定长tensor,方便计算损失函数。 pad_packed_sequence是将pack_padded_sequence生成的结构转化为原先的结构,定长的tensor。 其中test.txt的内容 As they sat in a nice coffee sho…

    PyTorch 2023年4月7日
    00
  • 猫狗识别——PyTorch

    猫狗识别   数据集下载:   网盘链接:https://pan.baidu.com/s/1SlNAPf3NbgPyf93XluM7Fg   提取密码:hpn4   1. 要导入的包 import os import time import numpy as np import torch import torch.nn as nn import torch…

    PyTorch 2023年4月8日
    00
  • [深度学习] Pytorch学习(二)—— torch.nn 实践:训练分类器(含多GPU训练CPU加载预测的使用方法)

    Learn From: Pytroch 官方TutorialsPytorch 官方文档 环境:python3.6 CUDA10 pytorch1.3 vscode+jupyter扩展 #%% #%% # 1.Loading and normalizing CIFAR10 import torch import torchvision import torch…

    2023年4月8日
    00
  • pytorch提取中间层的输出

    参考 第一种方法:在构建model的时候return对应的层的输出 def forward(self, x): out1 = self.conv1(x) out2 = self.conv2(out1) out3 = self.fc(out2) return out1, out2, out3 第2中方法:当模型用Sequential构建时,则让输入依次通过各个…

    PyTorch 2023年4月8日
    00
  • 利用Pytorch实现获取特征图的方法详解

    利用PyTorch实现获取特征图的方法详解 在本文中,我们将介绍如何使用PyTorch获取卷积神经网络(CNN)中的特征图。我们将提供两个示例,一个是使用预训练模型,另一个是使用自定义模型。 示例1:使用预训练模型 以下是使用预训练模型获取特征图的示例代码: import torch import torchvision.models as models i…

    PyTorch 2023年5月16日
    00
  • pytorch中tensorboardX进行可视化

    环境依赖: pytorch   0.4以上 tensorboardX:   pip install tensorboardX、pip install tensorflow   在项目代码中加入tensorboardX的记录代码,生成文件并返回到浏览器中显示可视化结果。 官方示例:   默认设置是在根目录下生成一个runs文件夹,里面存储summary的信息。…

    2023年4月7日
    00
  • 『PyTorch』屌丝的PyTorch玩法

    1. prefetch_generator 使用 prefetch_generator库 在后台加载下一batch的数据,原本PyTorch默认的DataLoader会创建一些worker线程来预读取新的数据,但是除非这些线程的数据全部都被清空,这些线程才会读下一批数据。使用prefetch_generator,我们可以保证线程不会等待,每个线程都总有至少一…

    PyTorch 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部