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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。