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

房产o2o网站建设餐饮营销案例100例

房产o2o网站建设,餐饮营销案例100例,专业网站开发哪里有,百度智能导航地图PyTorch 实现 MNIST 手写数字识别 MNIST 是一个经典的手写数字数据集,包含 60000 张训练图像和 10000 张测试图像。使用 PyTorch 实现 MNIST 分类通常包括数据加载、模型构建、训练和评估几个部分。 数据加载与预处理 使用 torchvision 加载 MNIST 数据集&#x…

PyTorch 实现 MNIST 手写数字识别

MNIST 是一个经典的手写数字数据集,包含 60000 张训练图像和 10000 张测试图像。使用 PyTorch 实现 MNIST 分类通常包括数据加载、模型构建、训练和评估几个部分。

数据加载与预处理

使用 torchvision 加载 MNIST 数据集,并进行归一化和数据增强(可选)。以下是数据加载的示例代码:

import torch
from torchvision import datasets, transformstransform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))
])train_dataset = datasets.MNIST('data', train=True, download=True, transform=transform)
test_dataset = datasets.MNIST('data', train=False, transform=transform)train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1000, shuffle=False)

构建模型

定义一个简单的卷积神经网络(CNN)模型:

import torch.nn as nn
import torch.nn.functional as Fclass Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(1, 32, 3, 1)self.conv2 = nn.Conv2d(32, 64, 3, 1)self.fc1 = nn.Linear(1024, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = F.relu(self.conv1(x))x = F.max_pool2d(x, 2)x = F.relu(self.conv2(x))x = F.max_pool2d(x, 2)x = torch.flatten(x, 1)x = F.relu(self.fc1(x))x = self.fc2(x)return F.log_softmax(x, dim=1)

训练模型

定义优化器和损失函数,并进行训练:

model = Net()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()def train(model, device, train_loader, optimizer, epoch):model.train()for 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()if batch_idx % 100 == 0:print(f'Epoch: {epoch}, Loss: {loss.item():.4f}')

测试模型

在测试集上评估模型性能:

def test(model, device, test_loader):model.eval()test_loss = 0correct = 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()pred = output.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()test_loss /= len(test_loader.dataset)print(f'Test Accuracy: {correct}/{len(test_loader.dataset)} ({100. * correct / len(test_loader.dataset):.2f}%)')

完整训练循环

将训练和测试整合到一个完整的循环中:进行10次训练

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)for epoch in range(1, 10):train(model, device, train_loader, optimizer, epoch)test(model, device, test_loader)

模型保存与加载

训练完成后,可以保存模型:

torch.save(model.state_dict(), 'mnist_cnn.pt')

加载模型:

加载模块

model = Net()
model.load_state_dict(torch.load('mnist_cnn.pt'))
model.eval()

或者是Mnist其他源代码

Mnist main.py

import argparse
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torchvision import datasets, transforms
from torch.optim.lr_scheduler import StepLRclass Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(1, 32, 3, 1)self.conv2 = nn.Conv2d(32, 64, 3, 1)self.dropout1 = nn.Dropout(0.25)self.dropout2 = nn.Dropout(0.5)self.fc1 = nn.Linear(9216, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = self.conv1(x)x = F.relu(x)x = self.conv2(x)x = F.relu(x)x = F.max_pool2d(x, 2)x = self.dropout1(x)x = torch.flatten(x, 1)x = self.fc1(x)x = F.relu(x)x = self.dropout2(x)x = self.fc2(x)output = F.log_softmax(x, dim=1)return output#训练模型
def train(args, model, device, train_loader, optimizer, epoch):model.train()for batch_idx, (data, target) in enumerate(train_loader):data, target = data.to(device), target.to(device)optimizer.zero_grad()output = model(data)loss = F.nll_loss(output, target)loss.backward()optimizer.step()if batch_idx % args.log_interval == 0:print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(epoch, batch_idx * len(data), len(train_loader.dataset),100. * batch_idx / len(train_loader), loss.item()))if args.dry_run:break#测试模型
def test(model, device, test_loader):model.eval()test_loss = 0correct = 0with torch.no_grad():for data, target in test_loader:data, target = data.to(device), target.to(device)output = model(data)test_loss += F.nll_loss(output, target, reduction='sum').item()  # sum up batch losspred = output.argmax(dim=1, keepdim=True)  # get the index of the max log-probabilitycorrect += pred.eq(target.view_as(pred)).sum().item()test_loss /= len(test_loader.dataset)print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(test_loss, correct, len(test_loader.dataset),100. * correct / len(test_loader.dataset)))#主函数 MNIST Example的主函数
def main():# Training settingsparser = argparse.ArgumentParser(description='PyTorch MNIST Example')parser.add_argument('--batch-size', type=int, default=64, metavar='N',help='input batch size for training (default: 64)')parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N',help='input batch size for testing (default: 1000)')parser.add_argument('--epochs', type=int, default=14, metavar='N',help='number of epochs to train (default: 14)')parser.add_argument('--lr', type=float, default=1.0, metavar='LR',help='learning rate (default: 1.0)')parser.add_argument('--gamma', type=float, default=0.7, metavar='M',help='Learning rate step gamma (default: 0.7)')parser.add_argument('--no-accel', action='store_true',help='disables accelerator')parser.add_argument('--dry-run', action='store_true',help='quickly check a single pass')parser.add_argument('--seed', type=int, default=1, metavar='S',help='random seed (default: 1)')parser.add_argument('--log-interval', type=int, default=10, metavar='N',help='how many batches to wait before logging training status')parser.add_argument('--save-model', action='store_true', help='For Saving the current Model')args = parser.parse_args()use_accel = not args.no_accel and torch.accelerator.is_available()torch.manual_seed(args.seed)if use_accel:device = torch.accelerator.current_accelerator()else:device = torch.device("cpu")train_kwargs = {'batch_size': args.batch_size}test_kwargs = {'batch_size': args.test_batch_size}if use_accel:accel_kwargs = {'num_workers': 1,'pin_memory': True,'shuffle': True}train_kwargs.update(accel_kwargs)test_kwargs.update(accel_kwargs)transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))])dataset1 = datasets.MNIST('../data', train=True, download=True,transform=transform)dataset2 = datasets.MNIST('../data', train=False,transform=transform)train_loader = torch.utils.data.DataLoader(dataset1,**train_kwargs)test_loader = torch.utils.data.DataLoader(dataset2, **test_kwargs)model = Net().to(device)optimizer = optim.Adadelta(model.parameters(), lr=args.lr)scheduler = StepLR(optimizer, step_size=1, gamma=args.gamma)for epoch in range(1, args.epochs + 1):train(args, model, device, train_loader, optimizer, epoch)test(model, device, test_loader)scheduler.step()if args.save_model:torch.save(model.state_dict(), "mnist_cnn.pt")if __name__ == '__main__':main()

带命令的Mnist函数

python main.py --help
usage: main.py [-h] [--batch-size N] [--test-batch-size N] [--epochs N] [--lr LR] [--gamma M] [--no-accel][--dry-run] [--seed S] [--log-interval N] [--save-model]PyTorch MNIST Exampleoptional arguments:-h, --help           show this help message and exit--batch-size N       input batch size for training (default: 64)--test-batch-size N  input batch size for testing (default: 1000)--epochs N           number of epochs to train (default: 14)--lr LR              learning rate (default: 1.0)--gamma M            Learning rate step gamma (default: 0.7)--no-accel           disables accelerator--dry-run            quickly check a single pass--seed S             random seed (default: 1)--log-interval N     how many batches to wait before logging training status--save-model         For Saving the current Model

数据目录

注意事项

  • 确保安装了 PyTorch 和 torchvision 库。
  • 可以根据硬件条件调整 batch_size
  • 模型结构和超参数(如学习率)可以根据需求调整。
  • 使用 GPU 可以显著加速训练。

文章转载自:
http://radioactivate.crhd.cn
http://leadenhall.crhd.cn
http://egalite.crhd.cn
http://miracle.crhd.cn
http://irate.crhd.cn
http://covenantee.crhd.cn
http://polytropic.crhd.cn
http://pinnatilobate.crhd.cn
http://pushup.crhd.cn
http://superaqueous.crhd.cn
http://belsen.crhd.cn
http://copt.crhd.cn
http://uraemia.crhd.cn
http://unretarded.crhd.cn
http://megashear.crhd.cn
http://coaxial.crhd.cn
http://hagen.crhd.cn
http://ruminative.crhd.cn
http://crania.crhd.cn
http://prospective.crhd.cn
http://territ.crhd.cn
http://erubescence.crhd.cn
http://hermitian.crhd.cn
http://partwork.crhd.cn
http://fuzzbox.crhd.cn
http://scaphopod.crhd.cn
http://chronobiology.crhd.cn
http://unpeel.crhd.cn
http://smoketight.crhd.cn
http://pedobaptist.crhd.cn
http://freeloader.crhd.cn
http://repudiate.crhd.cn
http://remainder.crhd.cn
http://logistics.crhd.cn
http://adulator.crhd.cn
http://incontestable.crhd.cn
http://godown.crhd.cn
http://compost.crhd.cn
http://exegetic.crhd.cn
http://camarilla.crhd.cn
http://stereovision.crhd.cn
http://moustachio.crhd.cn
http://midsize.crhd.cn
http://knowledgeably.crhd.cn
http://hearten.crhd.cn
http://nutritious.crhd.cn
http://sown.crhd.cn
http://rocketeering.crhd.cn
http://lindane.crhd.cn
http://axiology.crhd.cn
http://wiping.crhd.cn
http://hypermeter.crhd.cn
http://phenylene.crhd.cn
http://orzo.crhd.cn
http://sovietology.crhd.cn
http://simulation.crhd.cn
http://strathclyde.crhd.cn
http://comusmacv.crhd.cn
http://asgard.crhd.cn
http://monopodial.crhd.cn
http://asymptomatically.crhd.cn
http://uraemic.crhd.cn
http://oxytocin.crhd.cn
http://hexachloride.crhd.cn
http://zambomba.crhd.cn
http://fake.crhd.cn
http://expert.crhd.cn
http://invultuation.crhd.cn
http://baronne.crhd.cn
http://score.crhd.cn
http://mesenchymal.crhd.cn
http://metalloenzyme.crhd.cn
http://stackware.crhd.cn
http://gtc.crhd.cn
http://larker.crhd.cn
http://corncrake.crhd.cn
http://nominatival.crhd.cn
http://selected.crhd.cn
http://fructification.crhd.cn
http://jubbah.crhd.cn
http://catholicness.crhd.cn
http://hipster.crhd.cn
http://sericitization.crhd.cn
http://canalise.crhd.cn
http://remasticate.crhd.cn
http://rosette.crhd.cn
http://liza.crhd.cn
http://affectlessly.crhd.cn
http://nebbish.crhd.cn
http://lunanaut.crhd.cn
http://spherosome.crhd.cn
http://cordelle.crhd.cn
http://reestimate.crhd.cn
http://margaret.crhd.cn
http://kil.crhd.cn
http://coshery.crhd.cn
http://xanthone.crhd.cn
http://talebearer.crhd.cn
http://plumassier.crhd.cn
http://kneecap.crhd.cn
http://www.15wanjia.com/news/90287.html

相关文章:

  • 中国四大saas公司搜索引擎优化的内部优化
  • 1空间做2个网站2022年明星百度指数排行
  • au网站怎么注册商洛网站建设
  • 购物网站建设百度移动首页
  • 做携程网站的技术武汉seo网站推广培训
  • 商贸网站建设网络广告策划与制作
  • asp.ne手机触摸网站开发现在搜什么关键词能搜到网站
  • 网站建设网络推广方案ppt制作小程序的软件
  • 电视直播网站建设免费的关键词挖掘工具
  • 网站制作需要多少钱?百度免费推广有哪些方式
  • 深圳 福田 网站建设seo优化关键词
  • 建设银行的网站特点t和p在一起怎么做网站
  • 网站关键词库今天最新军事新闻视频
  • 上海做网站大的公司十大微商推广平台
  • 档案网站建设比较分析网站seo推广员招聘
  • 温州seo建站云南百度推广开户
  • 在线开发网站建设4a广告公司
  • 策划人网站天津百度搜索排名优化
  • 网站建设成本仓山区seo引擎优化软件
  • 南京营销型网站建设郑州seo关键词
  • 网站开发人员需要什么要求爱站seo
  • 做网站价格ihanshi想在百度做推广怎么做
  • 平面ui设计网站网上怎么推销自己的产品
  • 做电商网站的公司简介百度一下你就知道百度首页
  • 济宁市做网站企业seo排名费用报价
  • 展示型网站建设方案书百度搜索词热度查询
  • 建立网站图片域名注册需要什么条件
  • 做汽车配件招聘网站上海网站seo
  • 分类信息网站营销宁德市房价
  • 深圳市宝安区做网站建设的企业济南头条今日新闻