# 导入 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()}") # 打印损失值
torch, torch.nn 和 torch.optim。SimpleNet,它有三层:输入层(784 维),两个隐藏层(128 维和 64 维),以及输出层(10 维)。forward 方法中,定义了数据如何通过网络,使用 ReLU 激活函数。希望这段代码能帮助你理解如何使用 PyTorch 构建和训练一个简单的神经网络。
上一篇:python 文件重命名
下一篇:python tk
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站