pytorch 图片分类例子,基于pytorch的图像分类算法

  pytorch 图片分类例子,基于pytorch的图像分类算法

  基本上把我这几天发的博客捋一遍框架流程就学会啦

  文章目录竞争代码结果

  竞争代码进口火炬

  进口火炬视觉

  从火炬进口神经网络

  从torch.utils.data导入数据加载器

  来自torch.utils.tensorboard导入摘要作者

  从模型导入模型

  # 加载数据

  train _ data _ set=火炬视觉。数据集。cifar 10(root= ./dataset/,

  train=True,

  变换=火炬视觉。转变。totensor(),

  下载=真)

  test _ data _ set=火炬视觉。数据集。cifar 10(root= ./dataset/,

  train=True,

  变换=火炬视觉。转变。totensor(),

  下载=真)

  # 利用数据加载器加载数据

  train _ data loader=data loader(dataset=train _ data _ set,batch_size=64)

  测试数据加载器=数据加载器(数据集=测试数据集,批量大小=64)

  # 模型

  cifa10_model=Model()

  # 损失函数

  loss_fn=nn .交叉入口型()

  # 学习率

  #学习率=0.01

  learning_rate=1e-2

  # 优化器

  优化器=火炬。optim。SGD(cifa 10 _型号。参数(),lr=learning_rate)

  writer=SummaryWriter(./all_train_fluent/)

  # 定义训练相关参数

  纪元=20

  total_train_steps=0 #训练总次数

  total_test_steps=0 #测试总次数

  对于范围内的历元(历元):

  打印(f -第{纪元1}轮训练- )

  epoch _ total _ train _ losses=0.0 #每一轮训练总损失

  cifa10_model.train() #只对拒绝传统社会的人等特定层有用

  # 开始训练

  对于train_dataloader中的数据:

  img,目标=数据

  output=cifa10_model(imgs)

  loss=loss_fn(output,targets) # tensor(2.3019,grad_fn=NllLossBackward)

  # 优化器优化

  # ****1 梯度清零****

  optimizer.zero_grad()

  # ****2 计算梯度****

  loss.backward()

  # ****3 梯度更新****

  optimizer.step()

  total_train_steps=1

  纪元_总_列车_损失=损失。项目()

  如果总训练步数% 100==0:

  打印(f 第{total_train_steps}次训练损失为:{loss.item()} )

  writer.add_scalar(train_loss ,loss.item(),total_train_steps)

  打印(f -第{纪元1}轮训练训练集总损失{ epoch _ total _ train _ loss }-)

  cifa10_model.eval() #只对拒绝传统社会的人等特定层有用

  # 开始测试

  epoch _ total _ test _ losses=0.0 #每一轮测试总损失

  epoch_total_test_accuracy=0.0 #每一轮正确总数

  # 不考虑梯度情况下计算测试集上的损失

  with torch.no_grad():

  对于测试_数据加载器中的数据:

  img,目标=数据

  output=cifa10_model(imgs)

  损失=损失_fn(产出,目标)

  epoch _ total _ test _ loss=损失。项目()

  # 计算正确率

  right_num_tensor=(torch.argmax(输入=输出,dim=1)==目标)。总和()

  epoch _ total _ test _ accuracy=right _ num _ tensor。item()#横向比较

  打印(f -第{纪元1}轮训练测试集上的损失为{ epoch _ total _ test _ loss }-)

  打印(f -第{纪元1}轮训练测试集上的正确率为{epoch_total_test_accuracy/len(测试数据集)} -)

  total_test_steps=1

  writer.add_scalar(test_loss ,epoch _ total _ test _ losses,

  总计_测试_步骤)

  作家。add _ scalar( test _ accu rect ,epoch _ total _ test _ accuracy/len(test _ data _ set),

  总计_测试_步骤)

  # 保存模型

  火炬。保存(cifa 10 _型号。state _ dict(),f cifa 10 _ model-epoch { epoch }-test _ loss { epoch _ total _ test _ loss } )模型。巴拉圭

  进口火炬

  从火炬进口神经网络

  # 构建神经网络

  班级模型(nn .模块):

  def __init__(self):

  超级(模特,自己)。__init__()

  self.model=nn .顺序(

  nn .Conv2d(in_channels=3,out_channels=32,kernel_size=5,stride=1,padding=2),

  nn .MaxPool2d(kernel_size=2),

  nn .Conv2d(in_channels=32,out_channels=32,kernel_size=5,stride=1,padding=2),

  nn .MaxPool2d(kernel_size=2),

  nn .Conv2d(in_channels=32,out_channels=64,kernel_size=5,stride=1,padding=2),

  nn .MaxPool2d(kernel_size=2),

  nn .Flatten(),

  nn .线性(64 * 4 * 4,64),

  nn .线性(64,10),

  )

  向前定义(自身,x):

  输出=自身模型(十)

  返回输出

  if __name__==__main__ :

  tensor=torch.ones(size=(64,3,32,32))

  模型=模型()

  打印(模型(张量))。形状)

  结果文件已经下载并验证

  已经下载并验证的文件

  -第一轮训练-

  第100次训练课的损失是:10000 . 068686868617

  第200次训练课的损失是:10060.888688868617

  第300期培训班的损失情况如下:18960 . 688686868616

  第400期培训班的损失情况如下:48600.68668686661

  第500期培训班的损失情况如下:20060 . 688686868666

  第600次训练课的损失是:10060.686686866617

  第700次训练课的损失是:10600.888688868617

  在第一轮训练中训练集的总损失——20007.688686868616

  在第一轮训练的测试集上,损失是1 . 54616 . 38686868686

  -在第一轮训练测试集上的正确率是0.26926-

  -第二轮训练-

  第800期培训班的损失情况如下:18960.888888888816

  第900次训练课的损失是:2000000000005

  第1000次训练课的损失是:10000000000005

  第1100次训练的损失是:400000000005

  第1200期培训班的损失情况如下:18960 . 688686868616

  第1300次训练课的损失是:2000000000005

  第1400次训练课的损失是:2000000000005

  第1500期培训班的损失情况如下:20060 . 688686868666

  在第二轮训练中训练集的总损失-20000.686686866616

  在第二轮训练的测试集上,损失是1.100000000005

  -在第二轮训练测试集上的正确率是0.33968-

  -第三轮训练-

  第1600次训练课的损失是:2000000000005

  第1700次训练课的损失是:18600.888686868617

  第1800期培训班的损失是:10000 . 006868686805

  第1900期培训班的损失是:20000 . 486868686665

  第2000期培训班的损失是:200000000005

  第2100期培训班的损失如下:2000000000005 . 2000000003

  第2200期培训班的损失情况如下:200000000005 . 166005

  第2300期培训班的损失情况如下:23000 . 686686866667

  在第三轮训练中训练集的总损失-20000.686386866616

  在第三轮训练的测试集上,损失为1000 -

  -在第三轮训练测试集上的正确率是0.3934-

  -第四轮训练-

  第2400期培训班的损失情况如下:19960.888686868616

  第2500期培训班的损失情况如下:26860 . 688686868666

  第2600次训练课的损失是:200000000005 . 200001

  第2700次训练课的损失是:2000000000005

  第2800次训练课的损失是:10000 . 068686868615

  第2900次训练课的损失是:200000000005

  第3000期培训班的损失情况如下:30000万英镑30000000005

  第3100次训练的损失情况如下:19960.888686868616

  第四轮训练中训练集的总体损失——20006.688686886616

  在第4轮训练的测试集上,损失为1000 -

  -在第四轮训练测试集上的正确率是0.40528-

  -第五轮培训-

  第3200次培训的损失是:200000000005

  第3300期培训班的损失情况如下:19960.888686868616

  第3400期培训班的损失如下:4000000002

  第3500期培训班的损失情况如下:19960.888686868617

  第3600期培训班的损失情况如下:18600.688686866617

  第3700次训练的损失情况如下:19960.888686868617

  第3800次训练的损失情况如下:18960.888688888616

  第3900期培训班的损失情况如下:18960 . 688686868616

  在第五轮训练中训练集的总损失-10000.688686863617

  在第五轮训练的测试集上,损失是1000000000005

  -在第五轮训练测试集上的正确率是0.42974-

  -第六轮训练-

  第4000期培训班的损失如下:40000000005 . 466005

  第4100期培训班的损失情况如下:46800.68868688661

  第4200次训练的损失情况如下:19960.888686868616

  第4300期培训班的损失情况如下:18960.688686868616

  第4400期培训班的损失情况如下:48600.68868686666

  第4500期培训班的损失情况如下:46800.68868686666

  第4600次训练课的损失是:40000000005

  在第六轮训练中训练集的总损失-20000.668666866616

  在第六轮训练的测试集上,损失是1.100000000005

  -在第六轮训练测试集上的正确率是0.4567-

  -第七轮培训-

  第4700次训练的损失是:18960.688688868617

  第4800期培训班损失如下:48800

  -在第7轮训练测试集上的正确率是0.4925-

  -第八轮训练-

  第5500次训练课的损失是:2000.00000000005

  第5600次训练课的损失如下:20060 . 688686868666

  第5700次训练的损失情况如下:18960.688686868616

  第5800次训练的损失是:18960.888888888617

  第5900次训练的损失情况如下:26900.868686866667

  第6000次训练课的损失如下:4000000002

  第6100次训练的损失情况如下:19960.686686866616

  第6200次训练的损失情况如下:19960.688686866616

  在第八轮训练中训练集的总损失-18860.888888888617

  在第8轮训练的测试集上,损失为1000 -

  -在第8轮训练测试集上的正确率是0.52594-

  -第九轮培训-

  第6300次训练的损失情况如下:19960.686686866617

  第6400次训练的损失情况如下:18960.686686866616

  第6500期培训班的损失情况如下:18960.688668686616

  第6600次训练课的损失是:40000 . 00666666661

  第6700次训练的损失情况如下:19960.688686866617

  第6800次训练的损失情况如下:18960.688686886616

  第6900次训练的损失情况如下:19960.688686868616

  第7000次训练课的损失是:40000000005

  第9轮训练中训练集的总损失-20000.688686866616

  在第9轮训练的测试集上,损失是-20000000005

  -在第9轮训练测试集上的正确率是0.5563-

  -第十轮培训-

  第7100次训练的损失情况如下:19960.888686886617

  第7200次训练的损失情况如下:19960.888686868617

  第7300次训练的损失情况如下:19960.888686868617

  第7400次训练的损失情况如下:19960.888686868617

  第7500期培训班的损失情况如下:18960.888688868617

  第7600次训练课的损失是:18600.688686868617

  第7700次训练课的损失是:18960.688688868617

  第7800次训练的损失情况如下:18960.888686888617

  第10轮训练中训练集的总损失——19960.888686868617

  在第10轮训练测试集上,损失是10000 . 486868686815

  -在第10轮训练测试集上的正确率是0.57934-

  -第11轮培训-

  第7900次训练课的损失是:18900.688686868617

  第8000期培训班的损失情况如下:18980.888888888616

  第8100次训练的损失情况如下:18980.888888888816

  第8200次训练的损失情况如下:18960.888888888616

  第8300次训练的损失情况如下:18960.888888888616

  第8400次训练的损失情况如下:18960.888888888816

  第8500次训练的损失情况如下:18960.888888888816

  第8600次训练的损失是:18660.888888888617

  在第11轮训练中训练集的总体损失-19860.888686886617

  在第11轮的训练测试集上,损失是100%。58660.888688886816

  -在第11轮训练测试集上的正确率是0.59784-

  -第12轮培训-

  第8700次训练的损失情况如下:18960.888888888616

  第8800期培训班的损失情况如下:18800.888888888617

  第8900次训练的损失情况如下:18900.888888888617

  第9000次训练课的损失是:10000000005

  第9100次训练的损失情况如下:19980.988688898616

  第9200次训练的损失情况如下:20000000005

  第9300次训练的损失情况如下:19960.888688888616

  第12轮训练中训练集的总损失——19960.888686868617

  在第12轮训练测试集上,损失是80000000005

  -在第12轮训练测试集上的正确率是0.61004-

  第13轮训练

  第9400次训练的损失情况如下:18960 . 988686868616

  第9500次训练的损失情况如下:19960.988688888616

  第9600次训练的损失情况如下:19960.988686868617

  第9700次训练的损失情况如下:19960.988688888616

  第9800次训练的损失情况如下:19800.989868898617

  第9900次训练课的损失如下:2000000000005

  第10,000次训练的损失是:40000,000,0000001 . 1000001

  第10100次训练课的损失如下:20001 . 868686868616

  在第13轮训练中训练集的总损失——19960.888686868617

  在第13轮训练测试集上,损失是80000。38800 . 68686868661

  -在第13轮训练测试集上的正确率是0.62228-

  -14t

  第14轮培训的全面损失——培训单位56860.88868888661

  在第14轮的训练测试集上,损失为10000 . 486868686815

  -在第14轮训练测试集上的正确率是0.62864-

  -第15轮培训-

  第11,000次训练的损失是:20000000000001 . 10001

  第11,100次训练的损失是:2000.00000000005

  第11,200次训练课的损失是:2000000000005 . 100000001

  第11,300次培训的损失如下:46600.86868686661

  第11,400次训练的损失是:40000 . 00000668601

  第11,500次训练课的损失是:20000000000005 . 100000001

  第11,600次训练的损失是:0.500000000005

  第11,700次训练的损失是:46800 . 68686868686

  在第15轮训练中训练集的总损失——19800.688686868617

  在第15轮训练测试集上,损失是700,000,000,00001 . 16676767676

  -在第15轮训练测试集上的正确率是0.6389-

  -第16轮训练-

  第11,800次训练的损失是:11800 . 986868868617

  第11,900次训练的损失是:40000万英镑。40000.66666666667

  第12000次训练的损失是:2000.0000000000005

  第12,100次训练的损失是:40600 . 68686868686

  第12,200次训练的损失如下:18960 . 686686868616

  第12,300次培训的损失如下:2000.000000000005

  第12,400次训练的损失是:0.500000000005

  第12,500次培训的损失如下:2000.000000000005

  在第16轮训练中训练集的总损失——19860.688668686617

  在第16轮训练测试集上,损失是70000000005

  -在第16轮训练测试集上的正确率是0.65118-

  -第17轮培训-

  第12,600次训练的损失是:40000000005

  第12,700次训练的损失如下:18600.688686866617

  第12,800次训练的损失是:11800 . 186868868617

  第12,900次培训的损失如下:2000.000000000001

  第13,000次训练的损失是:2000.00000000001

  第13,100次训练课的损失是:40000000005

  第13,200次训练课的损失是:2000000000005 . 100000001

  第17轮训练的全面损失——训练部队53660.88868886866

  在第17轮的训练测试集上,损失是7 . 59667 . 88686886786

  -在第17轮训练测试集上的正确率是0.66352-

  第18轮训练

  第13,300次训练课的损失是:320000000005

  第13,400次训练的损失是:46800 . 68668686666

  第13,500次训练的损失是:40000000005

  第13,600次训练的损失是:2000.00000000005

  第13,700次训练的损失是:46800 . 68686868686

  第13,800次训练的损失是:11800 . 186386868617

  第13,900次训练的损失是:40000,0000000001

  第14,000次培训的损失如下:40000,000,00000001 . 400001

  第18轮训练的全部损失——训练部队58366.88868888866

  在第18轮的训练测试集上,损失是7 . 54866 . 88868888681

  -在第18轮训练测试集上的正确率是0.67374-

  -第19轮训练-

  第14,100次训练的损失是:40000,00000001001

  第14,200次训练课的损失是:200000000004 . 200001

  第14,300次训练的损失是:43000,00000001301

  第14,400次训练的损失是:40000 . 46868686861

  第14,500次训练的损失是:2000.00000000005

  第14,600次训练的损失是:46000万英镑。46600.68668686661

  第14,700次训练的损失是:46860 . 68686868686

  第14,800次训练的损失是:19980 . 168686868617

  在第19轮训练中的全部训练损失——19960.888688888617

  在第19轮的训练测试集上,损失是60000 . 46868668666

  -在第19轮训练测试集上的正确率是0.68918-

  -第20轮培训-

  第14,900次训练课的损失是:20000000000005 . 20000001

  第15,000次培训课程的损失如下:2000.000000000007

  第15,100次训练的损失是:45800 . 68686868686

  第15200次训练的损失是:20000000005

  第15,300次训练的损失是:2000.00000000001

  第15,400次训练的损失是:45600 . 68686868686

  第15,500次训练的损失如下:19800.688686868616

  第15,600次训练的损失是:400000000005

  在第20轮训练中训练集的总体损失-18860.888688868616

  在第20轮训练的测试集上,损失是600000 . 4686868661

  -在第20个训练测试集上的正确率是0.7024-

  进程结束,退出代码为0

  原创作品来自

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: