怎么在pytorch中实现一个mnist分类

  介绍

怎么在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分类