使用Pytorch来拟合函数方式

yizhihongxing

使用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.linspace(-1, 1, 100)
y = 2 * x + np.random.randn(*x.shape) * 0.3

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

# Define neural network model
model = nn.Sequential(
    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
import matplotlib.pyplot as plt

# Generate random data
np.random.seed(0)
x = np.linspace(-1, 1, 100)
y = np.sin(5 * np.pi * x) + np.random.randn(*x.shape) * 0.3

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

# Define neural network model
model = nn.Sequential(
    nn.Linear(1, 10),
    nn.ReLU(),
    nn.Linear(10, 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的神经网络模型。接下来,我们定义了损失函数和优化器,并使用它们训练模型。最后,我们绘制了原始数据和拟合线。

总结

在本文中,我们介绍了如何使用PyTorch来拟合函数,并提供了两个示例说明。这些技术对于在深度学习模型中使用回归非常有用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Pytorch来拟合函数方式 - Python技术站

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

相关文章

  • 【深度学习 01】线性回归+PyTorch实现

    1. 线性回归 1.1 线性模型     当输入包含d个特征,预测结果表示为:           记x为样本的特征向量,w为权重向量,上式可表示为:          对于含有n个样本的数据集,可用X来表示n个样本的特征集合,其中行代表样本,列代表特征,那么预测值可用矩阵乘法表示为:          给定训练数据特征X和对应的已知标签y,线性回归的⽬标是…

    2023年4月8日
    00
  • Pytorch 包下载

    https://blog.csdn.net/qq_27009517/article/details/81484662

    PyTorch 2023年4月8日
    00
  • Faster-RCNN Pytorch实现的minibatch包装

    实际上faster-rcnn对于输入的图片是有resize操作的,在resize的图片基础上提取feature map,而后generate一定数量的RoI。 我想首先去掉这个resize的操作,对每张图都是在原始图片基础上进行识别,所以要找到它到底在哪里resize了图片。 直接搜 grep ‘resize’ ./lib/ -r ./lib/crnn/ut…

    PyTorch 2023年4月8日
    00
  • 解决pytorch报错ImportError: numpy.core.multiarray failed to import

    最近在学pytorch,先用官网提供的conda命令安装了一下: conda install pytorch torchvision cudatoolkit=10.2 -c pytorch 然后按照官网的方法测试是否安装成功,能不能正常使用: import torch x = torch.rand(5, 3) print(x) 若能正常打印出x的值,则说明可…

    PyTorch 2023年4月7日
    00
  • Broadcast广播机制在Pytorch Tensor Numpy中如何使用

    本篇内容介绍了“Broadcast广播机制在Pytorch Tensor Numpy中如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1.什么是广播机制 根据线性代数的运算规则我们知道,矩阵运算往往都是在两个矩阵维度相同或者相匹配时才能运算。比如加减法…

    PyTorch 2023年4月8日
    00
  • Pytorch实现神经网络的分类方式

    PyTorch实现神经网络的分类方式 在PyTorch中,我们可以使用神经网络来进行分类任务。本文将详细介绍如何使用PyTorch实现神经网络的分类方式,并提供两个示例。 二分类 在二分类任务中,我们需要将输入数据分为两个类别。以下是一个简单的二分类示例: import torch import torch.nn as nn # 实例化模型 model = …

    PyTorch 2023年5月16日
    00
  • Pytorch 搭建分类回归神经网络并用GPU进行加速的例子

    PyTorch搭建分类回归神经网络并用GPU进行加速的例子 在本文中,我们将介绍如何使用PyTorch搭建分类回归神经网络,并使用GPU进行加速。本文将包含两个示例说明。 示例一:使用PyTorch搭建分类神经网络 我们可以使用PyTorch搭建分类神经网络。示例代码如下: import torch import torch.nn as nn import …

    PyTorch 2023年5月15日
    00
  • PyTorch教程【四】PyTorch加载数据

    代码示例: from torch.utils.data import Dataset from PIL import Image import os class MyData(Dataset): def __init__(self, root_dir, label_dir): self.root_dir = root_dir self.label_dir =…

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