结合注意力机制的UNet降水短临预报框架
天气预报以数值天气预报为主,它试图准确模拟物理特性的大气层。但数值天气预报的一个缺点是,它缺乏利用最新的气象资料进行短期预报的能力。我们通过使用数据驱动的神经网络方法,结果表明有可能产生准确的降水现报。
为此,我们提出了SmaAt-UNet,一个基于众所周知的UNet的高效卷积神经网络架构,配备了注意力模块和深度可分离卷积。我们利用荷兰的真实降水数据集评估了此方法,结果表明,根据精确度评估,相比于其他模型(原始的UNet框架),我们提出的模型仅使用了四分之一的参数即可达到与其他模型类似的结果。
本文对比分析了UNet
、UNet-CBAM
、UNet-DSC
和SmaAt-UNet
四种模型在降水短临预报方面的性能表现。
SmaAt-UNet框架
CBAM(convolutional block attention modules)是一个卷积块注意力模块,作用于输入图像,按照顺序将注意力机制应用于通道,然后是空间维度。CBAM的结果是一个加权的特征图,考虑了输入图像的通道和空间区域。
DSC(depthwise-separable convolutions)是深度可分离卷积,将传统的卷积运算分割为深度卷积和一个点卷积(a depthwise convolution followed by a pointwise convolution),可以在不明显牺牲性能的情况下减少模型的参数。
SmaAt-UNet的主要特点是两个:一个是在编码部分加入了注意力机制;另一个是将常规的卷积操作替换为深度可分离卷积。
此工作的基准是persistence
,结果表明:persistence
基准结果战胜了其余四个模型,这是因为对于短临预报而言,短时间内是不会发生明显的变化的。因此,很难克服persistence
基准模型。本文主要是利用UNet和注意力机制以及深度可分离卷积在降水短临预报方面的尝试,并没有利用更多的深度学习技术去进一步改善SmaAt-UNet模型的性能。
模型结果对比. Persistence明显优于其他深度学习模型结果.
不同方法的性能评估结果
此工作所使用的代码和数据集都已经公开,对于气象领域想要入门深度学习的工作者而言是非常友好的。通过与作者沟通,文中所使用的降水数据集已经公开,代码和数据集链接如下: SmaAt-UNet code[1]、Precipitation dataset[2]
References
[1]
SmaAt-UNet code: https://github.com/HansBambel/SmaAt-UNet
[2]
Precipitation dataset: https://mega.nz/folder/jEUS2IbL#azPKxidMTrllREZeoxwqPw
- 分析一个跨平台DDOS僵尸网络
- Android快速开发框架 Ultimate
- Cisco Linksys路由器蠕虫The Moon正在蔓延
- 移动支付安全评测:微信支付篇
- 如何优化 Android Studio 启动、编译和运行速度?
- 微信小程序左右滑动切换图片酷炫效果(附效果)
- Facebook推出用于android数据加密的开源API
- Android 表单验证框架:AValidations
- 推荐系统介绍
- Android WebView 上传文件支持全解析
- 网站管理软件 – AspxSpy2014 Final
- 特性分支与特性开关哪家强?
- Android快速开发框架 roboguice
- 悄悄的干活,打枪的不要!勒索+比特币挖矿木马
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Selenium自动登录淘宝,我无意间发现了登录漏洞!
- 【DB宝20】在Docker中分分钟即可拥有OGG Director环境
- mq监听死信队列后如何处理
- 【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
- 小白学PyTorch | 8 实战之MNIST小试牛刀
- 干货:用好VSCode这13款插件和8个快捷键,工作效率提升10倍
- 使用dplyr包对表格整理
- 安利 5 个拍案叫绝的 Matplotlib 骚操作!
- 多媒体程序开发
- 本地 IDE 已废!编辑器大结局!GitHub 的云 VSCode 实测
- 实战 | Python 编写端口扫描器
- 我这几年踩过的十个坑,每一条都是血泪教训
- 在 Python 中如何快速创建一个只读字典?
- 现场打脸:如何使用Selenium批量上传文件?
- 一日一技:FastAPI如何关闭接口文档?