首页 > 编程知识 正文

transactional注解失效原因,@transactional注解使用方法

时间:2023-05-03 11:55:03 阅读:49181 作者:1566

发布我自己对这篇论文《Pruning filters for efficient convnets》的学习过程,当时无能为力,只能一点一点地评论hhh

train.py

eftrain_network(Args,network=None, data_set=None ) : #设备设备设备=torch.device (cuda ' if args.GPU _ no=0else ' CPU ' ) if network is None: # 根据为分配代码的输入,其vgg模型和数据集network=vgg(Args.vgg, 使用args.data_set ) network=network.to ) device ) ifdata_setisnone3360data_ )的train_flag=true(#loss类loss 主要是为了优化我们的神经网络,脉冲、正则、SGD ) )不需要每次读取所有数据,可以分割读取)等3359github.com/cen6667/pruning _ filters _ for _ efficient _ convnetsoptimizer, scheduler=get_optimizer(args(#恢复训练的标志if args.resume_flag: # ) )加载训练的模型check _ point=torch.load (args.load _ path )加载的模型为network.load _ state _ dict (check _ point ) )要加载到loss _ calculator.loss _ seq=check _ )的args.start _ epoch=check _ point [ ' epoch ' ] # updatestartepoch - *-' * 10 'nttrainnetworkn '-- ' * * 10 ) forepochinrange (args.start _ epoch, args.epoch ) : # make shuffled data loader #从数据读取的关键接口数据库中获取batch size示例data _ loader=torch.utils.data . batch_size=args.batch_size,shuffle=true (# trainoneepochtrain _ step (网络,数据加载器,loss _ calchtraion ) args.print _ freq (adjustlearningrateifschedulerisnotnone 3360 scheduler.step ) torch.save (epoch ' 3360 epoch ' state ' loss _ seq ' : loss _ calculator.loss _ seq ),args.save _ path ' check _ point.PTH ' (returnnetworkdeftrain print_freq=100 ) : network.train ) # setbenchmarkflagtofasterruntime #在整个网络的每个卷积层上花费一点额外的时间来开始程序torch.backends.Cu dnn.benchmark=true # 更新类data _ time=average meter (loss _ time=average meter ) forward _ timme backward _ time=average meter (top1=average ) 返回当前时间的时间戳TIC=time.time for iteration targets (in enumerate (data _ loader ) :data_time.update ) time.time targets.to (设备) # 网络输出tic=time.time ) ) outputs=network ) inputs ) forward _ time.update (time.time )- tic ) )-TIC loss=targets ) loss_time.update ) time.time )- tic ) tic=time.time )将time梯度初始化为零(一个batch上loss的weight的导数是所有- tic zero_grad ) #反向传播loss.backward ) # backward _ time.update (time.time )- tic ) Top-5, Top-5的Top指的是一个图像中的概率前五名,也就是所有图像中最可能的一个或五个图像),例如必须分为十种,每个分类器的输出结果为#https://github.com/cen6667/pruning _ filters _ for _ efficient _ convnets # top 1对应于这十个值中最大概率值的分类正好是正确的频率,而Top5对应于这十个概率值中最大概率值的分类正好是正确的频率

prec1,PREC5=accuracy(outputs.data,targets,topk=(1,5 ) ) top1.update (pre C1.item ), inputs.size(0) )0 inputs.size(0) #日志打印输出if iteration % print _ freq==0: logs _=' % s : ' % time.ctime ) ' %(iteration,len(data_loader ) ) logs_='data(s ) 3360 % 2.3360 loss _ time.avg (logs _=' forward (s ) backkg Top5: %2.4f,' %(top1.avg,top5.avg ) logs _=' loss 3360 % 2.3f ' % loss _ calculator.get _ loss _ ll

链接:我的GitHub。

如果有问题的话请留言。 我每天磨练基本上马上回复

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。