生成了一个AI算法

import torch

import torch.nn as nn

import torch.optim as optim

from torchvision import datasets, transforms

1. 数据预处理

transform = transforms.Compose([

transforms.ToTensor(),

transforms.Normalize((0.5,), (0.5,)) # MNIST单通道归一化

])

train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform)

test_data = datasets.MNIST(root='./data', train=False, transform=transform)

2. 模型定义

class NeuralNetwork(nn.Module):

def init(self):

super().init()

self.flatten = nn.Flatten()

self.layers = nn.Sequential(

nn.Linear(28*28, 128), # 输入层

nn.ReLU(), # 激活函数

nn.Dropout(0.2), # 防过拟合

nn.Linear(128, 10) # 输出层(10分类)

)

def forward(self, x):

x = self.flatten(x)

return self.layers(x)

3. 训练配置

model = NeuralNetwork()

criterion = nn.CrossEntropyLoss()

optimizer = optim.Adam(model.parameters(), lr=0.001)

batch_size = 64

train_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, shuffle=True)

4. 训练循环

for epoch in range(10):

for images, labels in train_loader:

outputs = model(images)

loss = criterion(outputs, labels)

optimizer.zero_grad()

loss.backward()

optimizer.step()

5. 评估

test_loader = torch.utils.data.DataLoader(test_data, batch_size=256)

correct = 0

with torch.no_grad():

for images, labels in test_loader:

outputs = model(images)

_, predicted = torch.max(outputs, 1)

correct += (predicted == labels).sum().item()

print(f'准确率: {100 * correct / len(test_data):.2f}%')

相关推荐
半新半旧2 分钟前
mongodb 学习笔记
笔记·学习·mongodb
努力的小雨4 小时前
从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
经验分享·ai智能
wangbaowo5 小时前
MySQL数据库下篇
数据库·经验分享·笔记·学习·mysql·安全
麻雀无能为力5 小时前
C++自学笔记 makefile
笔记
五花肉村长5 小时前
Linux-Ext系列文件系统
linux·运维·服务器·c++·笔记·visual studio
麦田里的稻草人w6 小时前
拍摄学习笔记【前期】(一)曝光
笔记·学习
C++ 老炮儿的技术栈6 小时前
C++中什么是函数指针?
c语言·c++·笔记·学习·算法
再睡一夏就好6 小时前
C语言常见的文件操作函数总结
c语言·开发语言·c++·笔记·学习笔记
大刘讲IT7 小时前
IT/OT 融合架构下的工业控制系统安全攻防实战研究
经验分享·安全·web安全·架构·制造