介绍
怎么在pytorch中实现一个mnist分类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> torchvision包包含了目前流行的数据集,模型结构和常用的图片转换工具。强>
<强> torchvision。数据中包含了以下数据集强>
MNIST
可可(用于图像标注和目标检测)(字幕和检测)
LSUN分类
ImageFolder
Imagenet-12
CIFAR10和CIFAR100
STL10
<强> torchvision.models 强>
torchvision。模型模块的子模块中包含以下模型结构。
AlexNet
VGG
ResNet
SqueezeNet
DenseNet您可以构建一个模型与随机权重通过调用其构造函数:
<强> pytorch torchvision变换强>
对公益诉讼。图像进行变换
得到__future__ import print_function import argparse # Python 命令行解析工具 import torch import torch.nn  as 神经网络 import torch.nn.functional  as F import torch.optim  as optim 得到torchvision import 数据集转换 class 净(nn.Module): def 才能__init__(自我): ,,,超级(净,,自我). __init__ () ,,,self.conv1 =, nn.Conv2d(1, 10日,kernel_size=5) ,,,self.conv2 =, nn.Conv2d (10, 20, kernel_size=5) ,,,self.conv2_drop =, nn.Dropout2d () ,,,self.fc1 =, nn.Linear(320年,50) ,,,self.fc2 =, nn.Linear (50, 10) def 才能向前(自我,,x): ,,,x =, F.relu (F.max_pool2d (self.conv1 (x), 2)) ,,,x =, F.relu (F.max_pool2d (self.conv2_drop (self.conv2 (x)),, 2)) ,,,x =, x.view (1, 320) ,,,x =, F.relu (self.fc1 (x)) ,,,x =, F.dropout (x),培训=self.training) ,,,x =, self.fc2 (x) ,,,return F.log_softmax (x,,暗=1) def 火车(args,模型,设备,train_loader,,优化器,,时代): model.train才能() for 才能;batch_idx,(数据,目标),拷贝列举(train_loader): 数据,,,,,target =, data.to(设备),target.to(设备) ,,,optimizer.zero_grad () ,,,output =,模型(数据) ,,,loss =, F.nll_loss(输出,目标) ,,,loss.backward () ,,,optimizer.step () ,,,if batch_idx %, args.log_interval ==, 0: ,,,,,print (& # 39; Train 时代:{},({}/{},({:.0f} %)] \ tLoss:, {: .6f} & # 39; .format ( ,,,,,,,时代,,batch_idx *, len(数据),len (train_loader.dataset), ,,,,,,,100只*,batch_idx /, len (train_loader), loss.item ())) def 测试(args,模型,设备,test_loader): model.eval才能() test_loss 才能=0 correct 才能=0 with 才能torch.no_grad (): ,,,for 数据,target 拷贝test_loader: ,,,,,,,target =, data.to(设备),target.to(设备) ,,,,,output =,模型(数据) ,,,,,test_loss +=, F.nll_loss(输出,,目标,size_average=False) .item (), #, sum up batch 损失 ,,,,,pred =, output.max (1, keepdim=True) [1], #, get 从而index of 从而max 对数概率 ,,,,,correct +=, pred.eq (target.view_as (pred)) .sum () .item () test_loss 才能;/=,len (test_loader.dataset) 打印才能(& # 39;\ nTest 集:,Average 失:,{:.4f},,准确性:,{}/{},({:.0f} %) \ n # 39; .format ( ,,,test_loss,,正确的,,len (test_loader.dataset), ,,,100只*,correct /, len (test_loader.dataset))) def main (): #,才能Training 设置 parser 才能=,argparse.ArgumentParser(描述=& # 39;PyTorch MNIST 示例# 39;) parser.add_argument才能(& # 39;——batch-size& # 39;,,=int类型,默认=64,,metavar=& # 39; n # 39;, ,,,,,,,,,,,帮助=& # 39;input batch size for training (默认:64)& # 39;) parser.add_argument才能(& # 39;——test-batch-size& # 39;,,=int类型,默认=1000,,metavar=& # 39; n # 39;, null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在pytorch中实现一个mnist分类