当前位置: 首页 > news >正文

文化传媒有限公司 网站建设游戏网站织梦模板

文化传媒有限公司 网站建设,游戏网站织梦模板,网站后台地址忘了,wap网站引导页特效文章目录 1. 测量时间的方式2. model.eval(), model.train(), torch.no_grad()方法介绍2.1 model.train()和model.eval()2.2 model.eval()和torch.no_grad() 3. 模型推理时间方式4. 一个完整的测试模型推理时间的代码5. 参考#xff1a; 1. 测量时间的方式 time.time() time.… 文章目录 1. 测量时间的方式2. model.eval(), model.train(), torch.no_grad()方法介绍2.1 model.train()和model.eval()2.2 model.eval()和torch.no_grad() 3. 模型推理时间方式4. 一个完整的测试模型推理时间的代码5. 参考 1. 测量时间的方式 time.time() time.perf_counter() time.process_time() time.time() 和time.perf_counter() 包括sleep()time 可以用作一般的时间测量time.perf_counter()精度更高一些 time.process_time()当前进程的系统和用户CPU时间总和的值 测试代码 def show_time():print(我是time()方法{}.format(time.time()))print(我是perf_counter()方法{}.format(time.perf_counter()))print(我是process_time()方法{}.format(time.process_time()))t0 time.time()c0 time.perf_counter()p0 time.process_time()r 0for i in range(10000000):r itime.sleep(2)print(r)t1 time.time()c1 time.perf_counter()p1 time.process_time()spend1 t1 - t0spend2 c1 - c0spend3 p1 - p0print(time()方法用时{}s.format(spend1))print(perf_counter()用时{}s.format(spend2))print(process_time()用时{}s.format(spend3))print(测试完毕)测试结果 更详细解释参考 Python3.7中time模块的time()、perf_counter()和process_time()的区别 2. model.eval(), model.train(), torch.no_grad()方法介绍 2.1 model.train()和model.eval() 我们知道在pytorch中模型有两种模式可以设置一个是train模式、另一个是eval模式。 model.train()的作用是启用 Batch Normalization 和 Dropout。在train模式Dropout层会按照设定的参数p设置保留激活单元的概率如keep_prob0.8Batch Normalization层会继续计算数据的mean和var并进行更新。 model.eval()的作用是不启用 Batch Normalization 和 Dropout。在eval模式下Dropout层会让所有的激活单元都通过而Batch Normalization层会停止计算和更新mean和var直接使用在训练阶段已经学出的mean和var值。 在使用model.eval()时就是将模型切换到测试模式在这里模型就不会像在训练模式下一样去更新权重。但是需要注意的是model.eval()不会影响各层的梯度计算行为即会和训练模式一样进行梯度计算和存储只是不进行反向传播。 2.2 model.eval()和torch.no_grad() 在讲model.eval()时其实还会提到torch.no_grad()。 torch.no_grad()用于停止autograd的计算能起到加速和节省显存的作用但是不会影响Dropout层和Batch Normalization层的行为。 如果不在意显存大小和计算时间的话仅仅使用model.eval()已足够得到正确的validation的结果而with torch.zero_grad()则是更进一步加速和节省gpu空间。因为不用计算和存储梯度从而可以计算得更快也可以使用更大的batch来运行模型。 3. 模型推理时间方式 在测量时间的时候与一般测试不同比如下面的代码不正确 start time.time() result model(input) end time.time()而应该采用 torch.cuda.synchronize() start time.time() result model(input) torch.cuda.synchronize() end time.time()因为在pytorch里面程序的执行都是异步的。 如果采用代码1测试的时间会很短因为执行完endtime.time()程序就退出了后台的cu也因为python的退出退出了。 如果采用代码2代码会同步cu的操作等待gpu上的操作都完成了再继续成形end time.time() 4. 一个完整的测试模型推理时间的代码 一般是首先model.eval()不启用 Batch Normalization 和 Dropout, 不启用梯度更新 然后利用mode创建模型和初始化输入数据单张图像 def measure_inference_speed(model, data, max_iter200, log_interval50):model.eval()# the first several iterations may be very slow so skip themnum_warmup 5pure_inf_time 0fps 0# benchmark with 2000 image and take the averagefor i in range(max_iter):torch.cuda.synchronize()start_time time.perf_counter()with torch.no_grad():model(*data)torch.cuda.synchronize()elapsed time.perf_counter() - start_timeif i num_warmup:pure_inf_time elapsedif (i 1) % log_interval 0:fps (i 1 - num_warmup) / pure_inf_timeprint(fDone image [{i 1:3}/ {max_iter}], ffps: {fps:.1f} img / s, ftimes per image: {1000 / fps:.1f} ms / img,flushTrue)if (i 1) max_iter:fps (i 1 - num_warmup) / pure_inf_timeprint(fOverall fps: {fps:.1f} img / s, ftimes per image: {1000 / fps:.1f} ms / img,flushTrue)breakreturn fps if __name__ __main__:device torch.device(cuda if torch.cuda.is_available() else cpu)# device cpuprint(device)img_channel 3width 32enc_blks [2, 2, 4, 8]middle_blk_num 12dec_blks [2, 2, 2, 2]width 16enc_blks [1, 1, 1]middle_blk_num 1dec_blks [1, 1, 1]net NAFNet(img_channelimg_channel, widthwidth, middle_blk_nummiddle_blk_num,enc_blk_numsenc_blks, dec_blk_numsdec_blks)net net.to(device)data [torch.rand(1, 3, 256, 256).to(device)]fps measure_inference_speed(net, data)print(fps:, fps)5. 参考 https://blog.csdn.net/weixin_44317740/article/details/104651434 https://zhuanlan.zhihu.com/p/547033884 https://deci.ai/blog/measure-inference-time-deep-neural-networks/ https://github.com/xinntao/BasicSR
http://www.hkea.cn/news/14267102/

相关文章:

  • 网站建设推荐频道建网站不花钱免费
  • 重庆做营销网站建设小蚂蚁page页面模板
  • 珠海柏泰教育官方网站建设天猫网站建设论文
  • 简单的cms建站系统团智慧团建登录入口
  • 网页设计培训高清图集百度关键词优化费用
  • 淘宝客网站开发定制电商网站模板
  • 做西式快餐店网站淘宝网站的建设与运营设计思路
  • 网站访问量有什么用山东省作风建设网站
  • 梅河口市住房和城乡建设局网站资讯门户类网站有哪些
  • 网站安全 扫描怎么制作商城小程序
  • 律师做推广宣传的网站建设网站的技术手段
  • 网站网站制作费用网站代理网址
  • 贸易公司网站建设南谯区住房和城乡建设局网站
  • 北京网站制作计划沈阳网站建设公司哪家好
  • 商城网站项目策划书网站建设销售客户开发
  • 网站建设应对客户问题的话术wordpress多主题插件下载
  • 湘潭网站建设价格wordpress主题no.7
  • 如何给给公司建立网站小程序开发公司哪家
  • app应用网站单页模板下载网站开发项目标书
  • 专门做推荐的网站大连网站建设领超最好
  • 网站建设合同违约企业网站托管外包平台
  • 拱墅区做网站合肥网站建设培训中心
  • 云南省安宁市建设厅官方网站专业网站建设品牌
  • oppo官方网站教育app开发费用
  • 做外贸网站需要注意哪些常德论坛
  • 昆明手机网站推荐河海大学学风建设网站
  • 找外包做网站18.ppt网站是谁做的
  • 外贸网站设计案例h5商城和小程序商城的区别
  • 做网站广告经营者h5响应式网站源码下载
  • 企业网站源码是什么微网站制作公司