当前位置: 首页 > wzjs >正文

美的网站建设天津哪家网站设计公司好

美的网站建设,天津哪家网站设计公司好,滕州外贸网站建设,立水桥网站建设知识点回顾: 彩色和灰度图片测试和训练的规范写法:封装在函数中 展平操作:除第一个维度batchsize外全部展平 dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout 作业:仔细学习下测试和训练…

知识点回顾:

彩色和灰度图片测试和训练的规范写法:封装在函数中
展平操作:除第一个维度batchsize外全部展平
dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout
作业:仔细学习下测试和训练代码的逻辑,这是基础,这个代码框架后续会一直沿用,后续的重点慢慢就是转向模型定义阶段了。

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
import matplotlib.pyplot as plt
import numpy as np# 设备配置
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")# 数据预处理函数 - 处理灰度图像(MNIST)
def get_mnist_loaders(batch_size=64):# 灰度图像归一化transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))  # MNIST数据集的均值和标准差])train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)return train_loader, test_loader# 数据预处理函数 - 处理彩色图像(CIFAR-10)
def get_cifar10_loaders(batch_size=64):# 彩色图像归一化transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))  # CIFAR-10的均值和标准差])train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)test_dataset = datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)return train_loader, test_loader# 定义包含展平和dropout的CNN模型
class SimpleCNN(nn.Module):def __init__(self, in_channels=1, num_classes=10):super(SimpleCNN, self).__init__()# 卷积层部分self.conv_layers = nn.Sequential(nn.Conv2d(in_channels, 32, kernel_size=3, stride=1, padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2),nn.Dropout(0.25),  # 第一个dropout层nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2),nn.Dropout(0.25)   # 第二个dropout层)# 展平操作后接全连接层self.fc_layers = nn.Sequential(nn.Flatten(),  # 展平操作,保持batch维度不变nn.Linear(64 * 7 * 7, 128),  # 假设输入尺寸为32x32,经过两次池化后为8x8,64通道nn.ReLU(),nn.Dropout(0.5),  # 全连接层后的dropoutnn.Linear(128, num_classes))def forward(self, x):x = self.conv_layers(x)x = self.fc_layers(x)return x# 训练函数 - 规范的训练流程
def train(model, train_loader, criterion, optimizer, epoch, device):model.train()  # 切换到训练模式,启用dropoutrunning_loss = 0.0correct = 0total = 0for batch_idx, (data, target) in enumerate(train_loader):data, target = data.to(device), target.to(device)# 梯度清零optimizer.zero_grad()# 前向传播output = model(data)loss = criterion(output, target)# 反向传播和优化loss.backward()optimizer.step()# 统计训练信息running_loss += loss.item()_, predicted = output.max(1)total += target.size(0)correct += predicted.eq(target).sum().item()if batch_idx % 100 == 0:print(f'Epoch: {epoch} | Batch: {batch_idx} | Loss: {loss.item():.4f} | Acc: {100.*correct/total:.2f}%')epoch_loss = running_loss / len(train_loader)epoch_acc = 100. * correct / totalreturn epoch_loss, epoch_acc# 测试函数 - 规范的测试流程
def test(model, test_loader, criterion, device):model.eval()  # 切换到测试模式,关闭dropouttest_loss = 0correct = 0total = 0with torch.no_grad():  # 不计算梯度,节省内存和计算资源for data, target in test_loader:data, target = data.to(device), target.to(device)output = model(data)# 累加损失test_loss += criterion(output, target).item()# 计算准确率_, predicted = output.max(1)total += target.size(0)correct += predicted.eq(target).sum().item()test_loss /= len(test_loader)test_acc = 100. * correct / totalprint(f'Test Loss: {test_loss:.4f} | Test Accuracy: {test_acc:.2f}%')return test_loss, test_acc# 主函数 - 整合整个流程
def main(use_color=False):# 选择数据集if use_color:print("Using CIFAR-10 (color images) dataset...")train_loader, test_loader = get_cifar10_loaders(batch_size=128)in_channels = 3  # 彩色图像3通道else:print("Using MNIST (grayscale images) dataset...")train_loader, test_loader = get_mnist_loaders(batch_size=128)in_channels = 1  # 灰度图像1通道# 初始化模型model = SimpleCNN(in_channels=in_channels, num_classes=10).to(device)criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练和测试循环num_epochs = 5train_losses, train_accs, test_losses, test_accs = [], [], [], []for epoch in range(1, num_epochs + 1):print(f"\nEpoch {epoch}/{num_epochs}")train_loss, train_acc = train(model, train_loader, criterion, optimizer, epoch, device)test_loss, test_acc = test(model, test_loader, criterion, device)train_losses.append(train_loss)train_accs.append(train_acc)test_losses.append(test_loss)test_accs.append(test_acc)# 绘制训练过程plt.figure(figsize=(12, 4))plt.subplot(1, 2, 1)plt.plot(train_losses, label='Train Loss')plt.plot(test_losses, label='Test Loss')plt.title('Loss Curve')plt.xlabel('Epoch')plt.ylabel('Loss')plt.legend()plt.subplot(1, 2, 2)plt.plot(train_accs, label='Train Accuracy')plt.plot(test_accs, label='Test Accuracy')plt.title('Accuracy Curve')plt.xlabel('Epoch')plt.ylabel('Accuracy (%)')plt.legend()plt.tight_layout()plt.show()if __name__ == "__main__":# 运行灰度图像版本(MNIST)main(use_color=False)# 取消注释以下行运行彩色图像版本(CIFAR-10)# main(use_color=True)


文章转载自:

http://1r2o8oZq.czgfn.cn
http://iUvuNgq0.czgfn.cn
http://4w8JLPzA.czgfn.cn
http://mv39MyiU.czgfn.cn
http://UqJvzn5T.czgfn.cn
http://OyfWczhF.czgfn.cn
http://gRAgsNo8.czgfn.cn
http://XZgfxLpf.czgfn.cn
http://FenzUI6A.czgfn.cn
http://advtiJLU.czgfn.cn
http://aCV1wYUP.czgfn.cn
http://UtvBAa36.czgfn.cn
http://DdbSv2CB.czgfn.cn
http://WUU6rbCA.czgfn.cn
http://KpNLW0Rb.czgfn.cn
http://mXda7Y8l.czgfn.cn
http://BG2Isecf.czgfn.cn
http://QM0yBENw.czgfn.cn
http://3OdC8AoH.czgfn.cn
http://k0GGsBm7.czgfn.cn
http://vJEUExUP.czgfn.cn
http://j1U1yBY2.czgfn.cn
http://JNS76ryw.czgfn.cn
http://bvh3O6Ut.czgfn.cn
http://Vg3e0qs1.czgfn.cn
http://QZaxAdIN.czgfn.cn
http://Kiolpv3u.czgfn.cn
http://aqSOC291.czgfn.cn
http://ZTw4uJWf.czgfn.cn
http://SzUS73AR.czgfn.cn
http://www.dtcms.com/wzjs/636874.html

相关文章:

  • 网站建站主机现在网站建设用什么语言
  • 个人做网站郊游的英温室大棚建设 网站及排名转卖
  • 上海南站网站建设公司php和html5做网站
  • 网站是怎么做的吗win2008搭建wordpress
  • 门户网站开发多少钱媒体资源网官网
  • 北京排名seo南通做网站优化
  • 建设网站成本网站平台设计团队
  • excel网站建设建设部建造师网站
  • 北滘网站开发建设部评职称查询网站
  • 江西网站备案要求app下载汅api未满入内
  • 网站服务器自己做免费源码下载网站
  • 网站的服务器选择深圳服装设计公司排名前十强
  • 用.net编写网站个人在线视频播放网站搭建
  • 做润滑油网站图片商标购买网站
  • 做网站怎么实现在线支付免费观看电影电视剧的app下载
  • 益阳市城乡和住房建设部网站wordpress另一更新正在进行
  • 温州网站建设外包android开发
  • 中国民航机场建设集团公司网站做推文的网站的推荐
  • 个人可以做网站滕州网站建设企业
  • 石家庄做网站费用品牌广告
  • 公司的网站是怎么建立青岛房地产团购网站建设
  • 临沂网站建设排名网站维护方式
  • 宿州精品网站建设开发小程序平台
  • 网站建设的指标公司网站建设方案详细方案
  • 海南景区网站建设方案WordPress清除ID沉余
  • 顺德龙江网站建设室内设计平面图讲解
  • 陕西城乡住房建设厅网站互联网服务平台官网
  • 北京公司建站模板长沙建网站一般要多少钱
  • 深圳设计网站公司网站wordpress儿童主题
  • 中山医疗网站建设为何网站打开慢