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, 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的神经网络模型。接下来,我们定义了损失函数和优化器,并使用它们训练模型。最后,我们绘制了原始数据和拟合线。

示例2:使用真实数据

以下是使用PyTorch实现神经网络拟合曲线的示例代码:

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

# Load data
data = pd.read_csv('data.csv')
x = np.array(data['x'])
y = np.array(data['y'])

# 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日

相关文章

  • 利用BERT得到句子的表示向量(pytorch)

      在文本分类和文本相似度匹配中,经常用预训练语言模型BERT来得到句子的表示向量,下面给出了pytorch环境下的操作的方法: 这里使用huggingface的transformers中BERT, 需要先安装该依赖包(pip install transformers) 具体实现如下: import torch from tqdm import tqdm i…

    PyTorch 2023年4月8日
    00
  • pytorch中设定使用指定的GPU

    转自:http://www.cnblogs.com/darkknightzh/p/6836568.html PyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU。 有如下两种方法来指定需要使用的GPU。 1. 类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。 1.1 直接终端中设定: C…

    PyTorch 2023年4月8日
    00
  • Pytorch 实现计算分类器准确率(总分类及子分类)

    以下是关于“Pytorch 实现计算分类器准确率(总分类及子分类)”的完整攻略,其中包含两个示例说明。 示例1:计算总分类准确率 步骤1:导入必要库 在计算分类器准确率之前,我们需要导入一些必要的库,包括torch和sklearn。 import torch from sklearn.metrics import accuracy_score 步骤2:定义数…

    PyTorch 2023年5月16日
    00
  • pytorch tensorboard可视化的使用详解

    PyTorch TensorBoard是一个可视化工具,可以帮助开发者更好地理解和调试深度学习模型。本文将介绍如何使用PyTorch TensorBoard进行可视化,并演示两个示例。 安装TensorBoard 在使用PyTorch TensorBoard之前,需要先安装TensorBoard。可以使用以下命令在终端中安装TensorBoard: pip …

    PyTorch 2023年5月15日
    00
  • Pytorch–torch.utils.data.DataLoader解读

        torch.utils.data.DataLoader是Pytorch中数据读取的一个重要接口,其在dataloader.py中定义,基本上只要是用oytorch来训练模型基本都会用到该接口,该接口主要用来将自定义的数据读取接口的输出或者PyTorch已有的数据读取接口的输入按照batch size封装成Tensor,后续只需要再包装成Variabl…

    PyTorch 2023年4月8日
    00
  • pytorch掉坑记录:model.eval的作用说明

    在PyTorch中,model.eval()是一个常用的方法,用于将模型设置为评估模式。本文将提供一个详细的攻略,介绍model.eval()的作用和使用方法,并提供两个示例说明。 1. model.eval()的作用 在PyTorch中,model.eval()方法用于将模型设置为评估模式。在评估模式下,模型的行为会发生一些变化,包括: Batch Nor…

    PyTorch 2023年5月15日
    00
  • pytorch1.0进行Optimizer 优化器对比

     pytorch1.0进行Optimizer 优化器对比 import torch import torch.utils.data as Data # Torch 中提供了一种帮助整理数据结构的工具, 叫做 DataLoader, 能用它来包装自己的数据, 进行批训练. import torch.nn.functional as F # 包含激励函数 imp…

    2023年4月6日
    00
  • Pytorch中使用TensorBoard详情

    PyTorch中使用TensorBoard 在本文中,我们将介绍如何在PyTorch中使用TensorBoard来可视化模型的训练过程和性能。我们将使用两个示例来说明如何使用TensorBoard。 安装TensorBoard 在使用TensorBoard之前,我们需要安装TensorBoard。我们可以使用以下命令来安装TensorBoard: pip i…

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