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 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 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的线性回归模型。接下来,我们定义了损失函数和优化器,并使用它们训练模型。最后,我们绘制了原始数据和拟合线。
总结
在本文中,我们详细介绍了如何使用PyTorch实现线性回归,并提供了两个例子。这些技术对于在深度学习模型中使用回归非常有用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyTorch实现线性回归详细过程 - Python技术站