Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python pytorch

作者:铁打的心,也会穿孔,   发布日期:2026-07-04   浏览:42

# 导入 PyTorch 库
import torch
import torch.nn as nn
import torch.optim as optim

# 定义一个简单的神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(784, 128)  # 输入层到隐藏层
        self.fc2 = nn.Linear(128, 64)   # 隐藏层到隐藏层
        self.fc3 = nn.Linear(64, 10)    # 隐藏层到输出层

    def forward(self, x):
        x = torch.relu(self.fc1(x))  # 使用 ReLU 激活函数
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

# 初始化模型、损失函数和优化器
model = SimpleNet()
criterion = nn.CrossEntropyLoss()  # 分类任务常用的交叉熵损失
optimizer = optim.Adam(model.parameters(), lr=0.001)  # Adam 优化器

# 创建一些虚拟数据 (假设是手写数字识别任务,输入大小为 784)
inputs = torch.randn(64, 784)  # 64 是批量大小
labels = torch.randint(0, 10, (64,))  # 假设标签是 0 到 9 的整数

# 训练过程
model.train()
optimizer.zero_grad()  # 清空之前的梯度
outputs = model(inputs)  # 前向传播
loss = criterion(outputs, labels)  # 计算损失
loss.backward()  # 反向传播
optimizer.step()  # 更新参数

print(f"Loss: {loss.item()}")  # 打印损失值

解释说明:

  1. 导入库:我们首先导入了 PyTorch 的核心库,包括 torch, torch.nntorch.optim
  2. 定义模型:创建了一个简单的全连接神经网络 SimpleNet,它有三层:输入层(784 维),两个隐藏层(128 维和 64 维),以及输出层(10 维)。
  3. 前向传播:在 forward 方法中,定义了数据如何通过网络,使用 ReLU 激活函数。
  4. 初始化模型、损失函数和优化器:我们选择了交叉熵损失函数和 Adam 优化器。
  5. 创建虚拟数据:为了演示,我们生成了一些随机的输入和标签。
  6. 训练过程:包括清空梯度、前向传播、计算损失、反向传播和更新参数。
  7. 打印损失:最后打印出损失值以检查模型的表现。

希望这段代码能帮助你理解如何使用 PyTorch 构建和训练一个简单的神经网络。

上一篇:python 文件重命名

下一篇:python tk

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

python集合中的元素可以是列表

staticmethod在python中有

python 保存json文件

python的assert基本用法

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站