首页 > 其他分享 >low level 任务中减小网络计算量的一些尝试

low level 任务中减小网络计算量的一些尝试

时间:2024-02-04 16:46:34浏览次数:19  
标签:减小 原图 level 分辨率 保边 网络 low

不同于分类、检测等 high level 任务,low level 任务往往需要保持图像原始分辨率,比如去噪、增强、HDR 等。这样一来,当图像分辨率上来之后(比如现在手机相机主摄主流的分辨率就是 4096x 3072,远高于分类使用的 256x256 的尺寸),网络的整体计算量会变得非常恐怖,端侧动不动可能就要上百毫秒。所以,一般都需要对原图做一些降分辨率的处理,这样端侧的芯片才能 hold 住。

  1. 原图直接 downsample,过网络,输出再 upsample。最简单的方法,效果也最差,边缘什么的表现肯定是不指望了;

  2. 原图直接 downsample,过网络,用一些具有保边性质的方法来 upsample,典型的方法比如 HDRNet,学一组小分辨的系数,再联合学习到的引导图像,经过三线性插值上采样回原图分辨率;又或者对网络输出的小图直接用引导滤波上采样,也可以起到保边的效果。此类方法的核心思想主要是在小图上做完预测之后,采取何种保边的方式来做上采样。但往往会遇到细节不足、局部对比度不足的问题,原因在于你的最终结果毕竟是插值插出来的,只能保大边,小边缘保不住。

  3. 对原图构建 Laplace 金字塔,将最顶层的 low freq 图像过一个复杂的网络,其他的 high freq 可以过一些小网络来做调整,最后再塌缩回去。在一些 low level 任务中,主要差异体现在低频部分,高频细节可能差异很小,比如风格转换任务,所以直接对低频动手本身也更合理。同时 Laplace 金字塔又可以实现分频处理的功能,笔者认为此类范式应该是潜力还比较大的。

  4. 另一个比较 trick 做法是对输入做 pixel unshuffle,把像素从分辨率层面放到通道层面,最后把结果 pixel shuffle 回去,因为网络的计算量主要是受到特征图 size 的影响,所以也可以减小计算量,同时这样的做法会变相地扩大网络的感受野,也算是一个增益,在实际工作中也属于一个比较行之有效的做法。

标签:减小,原图,level,分辨率,保边,网络,low
From: https://www.cnblogs.com/hhuxty/p/17984299

相关文章

  • IIS上Put操作出现HTTP Error 405.0 - Method Not Allowed 解决方法
    1、系统本地开发环境运行正常,在部署到服务器之后出现Put请求报405 -MethodNotAllowed错误。错误情况如下图:2、通过分析,为WebDAV插件导致。WebDAV是超文本传输协议(HTTP)的一组扩展,为Internet上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第十六章:使用RNN和注意力进行自然语言处理当艾伦·图灵在1950年想象他著名的Turing测试时,他提出了一种评估机器匹配人类智能能力的方法。他本可以测试许多事情,比如......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第三章:分类在第一章中,我提到最常见的监督学习任务是回归(预测值)和分类(预测类)。在第二章中,我们探讨了一个回归任务,使用各种算法(如线性回归、决策树和随机森林)来预测房屋价......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第十二章:使用TensorFlow进行自定义模型和训练到目前为止,我们只使用了TensorFlow的高级API,Keras,但它已经让我们走得很远:我们构建了各种神经网络架构,包括回归和分类......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(六)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第十四章:使用卷积神经网络进行深度计算机视觉尽管IBM的DeepBlue超级计算机在1996年击败了国际象棋世界冠军加里·卡斯帕罗夫,但直到最近计算机才能可靠地执行看似......
  • SpringBoot + LiteFlow:轻松应对复杂业务逻辑,简直不要太香!
    LiteFlow简介LiteFlow是什么?LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑。通过支持热加载规则配置,开发者能够即时调整流程步骤,将复杂的业务如价格计算、下单流程等拆分为独立且可复用的组件,从而实现系统的高度......
  • WIP: SLM-DB:Single-Level Key-Value Store with Persistent Memory
    论文原文:https://www.usenix.org/system/files/fast19-kaiyrakhmet.pdf摘要:本文调查了如何利用新出现的可按照字节寻址的持久化内存(PersistentMemory)来增强KV存储的性能。我们充分利用PM,提出了一种新型的KV存储,SLM-DB,这种存储同时利用到了B+树索引和LSM-tree的优点。我们提出......
  • 作为国产深度学习框架中分布式计算特性最强大的OneFlow的最大缺点是什么?
    OneFlow是国产深度学习框架中分布式计算特性最强大的,因为其原生支持分布式特性,世界上的历史中的深度学习框架唯一可以做到这一点的也就只有Google的TensorFlow和Jax了,虽然有人说Google的分布式最强也有人说Google的分布式一般,但是毋庸置疑的是OneFlow一定是国产深度学习框架中分布......
  • OneFlow框架0.9.1dev版本,成功安装并运行
    安装cuda和cudnn:condainstallcudatoolkit==11.8.0python3-mpipinstallnvidia-cudnn-cu11==8.7.0.84下载安装包的下载地址页面:wgethttps://oneflow-staging.oss-cn-beijing.aliyuncs.com/branch/master/cu118并从中找到对应python版本的安装包地址。下载框架安装......
  • Distribute tensorflow model training on a kubernetes cluster
    [ERRRO:AttributeError:module'tensorflow'hasnoattribute'app'](base)maye@maye-Inspiron-5547:~/github_repository/tensorflow_ecosystem/distribution_strategy$kubectldescribepoddist-strat-example-worker-0-w6rsbName:......