pytorch的一些例子

本文整理了PyTorch中一个简单的两层神经网络训练案例,通过随机生成的数据来优化网络参数,详细内容可在'Learning Pytorch with Examples'中查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理几个pytorch的简单例子,详见: Learning Pytorch with Examples.


一、构造一个简单的两层神经网络,并使用随机生成的数据训练参数:

import torch
from torch.autograd import Variable

# 构造一个两层的神经网络
class TwoLayerNet(torch.nn.Module):
    def __init__(self, D_in, H, D_out):
        """
        实例话两个nn.Linear模型然后把他们赋值给成员变量
        """
        super(TwoLayerNet, self).__init__()
        self.linear1 = torch.nn.Linear(D_in, H)
        self.linear2 = torch.nn.Linear(H, D_out)

    def forward(self, x):
        """
        在forward中,接受一个Variable作为输入,也必须返回一个Variable作为输出
        """
        h_relu = self.linear1(x).clamp(min=0)
        y_pred = self.linear2(h_relu)
        return y_pred


# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# 产生两个随机张量,并将它们
### PyTorch 测试示例代码 在 PyTorch 中,测试模型的过程通常包括加载已训练的模型、准备测试数据集以及评估模型性能。以下是一个完整的 PyTorch 测试示例代码,涵盖了模型定义、数据加载和测试过程。 #### 模型定义 首先定义一个简单的线性回归模型,该模型可以与之前提到的数据集配合使用[^1]。 ```python import torch import torch.nn as nn class LinearModel(nn.Module): def __init__(self): super(LinearModel, self).__init__() self.linear = nn.Linear(1, 1) # 输入和输出维度均为1 def forward(self, x): return self.linear(x) ``` #### 数据加载 接下来,使用 `CustomDataset` 类来加载测试数据,并创建一个数据加载器。 ```python from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): def __init__(self, num_samples=1000): self.X = torch.linspace(-10, 10, num_samples).reshape(-1, 1) self.y = 3 * self.X + 5 + torch.randn(self.X.size()) # 添加噪声 def __len__(self): return len(self.X) def __getitem__(self, idx): return self.X[idx], self.y[idx] # 实例化数据集和数据加载器 test_dataset = CustomDataset(num_samples=500) # 创建测试数据集 test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False) ``` #### 测试过程 加载已保存的模型权重,并在测试数据上进行预测和评估。 ```python # 加载预训练模型 model = LinearModel() model.load_state_dict(torch.load("linear_model.pth")) # 假设模型权重保存为 "linear_model.pth" model.eval() # 切换到评估模式 # 定义损失函数 criterion = nn.MSELoss() # 测试过程 total_loss = 0.0 with torch.no_grad(): # 禁用梯度计算以节省内存 for inputs, targets in test_loader: outputs = model(inputs) loss = criterion(outputs, targets) total_loss += loss.item() average_loss = total_loss / len(test_loader) print(f"Average Test Loss: {average_loss:.4f}") ``` 上述代码展示了如何加载模型、运行测试数据并通过平均损失值评估模型性能[^1]。 ### 注意事项 - 在实际应用中,确保测试数据与训练数据分布一致。 - 如果模型权重文件路径不同,请根据实际情况调整 `torch.load` 的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值