MindSpore Science科学计算行业套件——MindSpore Elec电磁仿真套件

当前多种算力正在激发跨领域的应用融合,AI已经成为研究科学计算的新范式。因此我们将MindSpore拓展到科学计算领域。通过多尺度混合计算和高阶混合微分两大关键创新,将MindSpore原有的AI计算引擎升级为AI与科学计算的统一引擎,实现融合的统一加速。在此基础上,我们面向8大科学计算行业打造MindSpore Science【1】系列套件。这些行业套件包含业界领先的数据集、基础模型、预置高精度模型和前后处理工具,加速科学行业应用开发。

当前,我们推出面向电子信息行业的MindSpore Elec套件和面向生命科学行业的MindSpore Sponge套件,分别实现了电磁仿真性能提升10倍和生物制药化合物模拟效率提升50%。下面将首先介绍MindSpore Elec套件。

 01 

MindSpore Elec架构图

MindSpore Elec电磁仿真套件主要由前后处理工具(数据构建及转换、结果可视化)、AI电磁模型

库(物理方程驱动和标签数据驱动)以及优化策略(数据压缩、动态自适应加权等)等组成,同时支持时域和频域的电磁仿真。以下是具体模块及功能:

  1. 数据构建及转换:支持CSG(Constructive Solid Geometry,CSG)模式的几何构建,如矩形、圆形等结构的交集、并集和差集,以及cst和stp数据(CST等商业软件支持的数据格式)的高效张量转换。未来还会支持智能网格剖分,供传统科学计算使用。

  2. AI电磁模型库:提供物理和数据驱动的AI电磁模型:物理驱动是指网络的训练无需额外的标签数据,只需方程和初边界条件即可;数据驱动是指训练需使用仿真或实验等产生的数据。物理驱动相比数据驱动,优势在于可避免数据生成带来的成本和网格独立性等问题,劣势在于需明确方程的具体表达形式并克服点源奇异性、多任务损失函数以及泛化性等技术挑战。

  3. 优化策略:为提升物理和数据驱动模型的精度、减少训练的成本,提供了一系列优化措施。数据压缩可以有效地减少神经网络的存储和计算量;多尺度滤波、动态自适应加权可以提升模型的精度,克服点源奇异性等问题;小样本学习主要是为了减少训练的数据量,节省训练的成本。

  4. 结果可视化:仿真的结果如S参数或电磁场等可保存在CSV、VTK文件中。MindSpore Insight可以显示训练过程中的损失函数变化,并以图片的形式在网页上展示结果;Paraview是第三方开源软件,具有动态展示切片、翻转等高级功能。

下面将围绕物理驱动和数据驱动的AI电磁仿真展开介绍。

 02 

物理驱动的AI电磁仿真

目前具有代表性的物理驱动的AI方法是美国布朗大学George Em Karniadakis教授课题组提出的物理信息神经网络(Physics Informed Deep Learning,PINNs)【2】。PINNs方法的核心是将方程求解转化成优化问题,极大简化了方程的建模和求解过程。但PINNs方法也有其不足的地方,如无法有效处理物理场梯度趋于无穷大的场景,无法解决多个损失函数的优化问题,尤其是数量级差异较大的问题;另外,不具备求解一类方程的能力,当方程中的特征参数(如电磁方程中介电系数等)发生变化时需要重新训练,增加了求解时间,端到端性能相比经典方法优势不是很大。

在MindSpore Elec中,通过高斯分布函数平滑、结合sin激活函数的多尺度残差网络结构以及自适应加权的多任务学习策略,可以有效解决奇异性、多任务损失函数优化难等问题;此外,通过将可变参数进行编码,实现神经网络的增量训练,当参数发生变化时,通过微调可以得到新方程的解。下面将以模拟2D TE波为例,介绍MindSpore Elec求解麦克斯韦方程族的具体流程,2D TE波方程如下:

其中,E,H分别表示电场和磁场;ϵ, μ分别是介质的绝对介电常数、绝对磁导率;J(x,t)是电磁仿真过程中的激励源,通常表现为端口脉冲的形式。这在数学意义上近似为狄拉克函数形式所表示的点源,可以表示为:

其中x0为激励源位置,g(t)为脉冲信号的函数表达形式。初始条件如下:

边界条件为二阶Mur吸收边界条件:

a) 高斯分布函数平滑:可以采用光滑的概率分布函数代替不连续的狄拉克函数,从而克服点源奇异性的问题,概率分布函数可以选择高斯分布、柯西分布等。

b) 多尺度残差网络+sin激活函数:受上交许志钦老师多尺度【3】工作的启发,采用多尺度残差网络结构以及sin激活函数(正余弦函数与电磁波信号传播形式相契合),可以有效提升网络捕捉多频信号的能力。

c) 动态自适应加权:AI计算电磁方程时,各项损失函数表现数量级的差异,导致训练收敛难。其中源项附近的损失函数值最大,其次是非源区域方程的损失函数。

原始自适应加权方案【4】:

原始的方案没有下界,会导致精度不足甚至不收敛问题,因此我们添加了

超参数

通过测试我们发现改进后的方案表现最好

d) 增量训练:基于隐向量和神经网络的结合对一系列方程组进行预训练。与求解单个问题不同,预训练步骤中,神经网络的输入为采样点(X)与隐向量(Z)的融合,具体如下图所示

e) 实验结果:增量训练的AI方法相比原始的PINNs方法,性能提升15倍以上;与Benchmark(传统的数值方法)的相对误差在5%左右。

03 

数据驱动的AI电磁仿真

MindSpore Elec提供了基于参数化和点云的数据驱动方法。参数化方案实现的是参数到仿真结果的直接映射,例如天线的宽度、角度作为网络输入,网络输出为S参数。参数化方案的优点是直接映射且网络简单。点云方案实现的是从天线/手机的采样点云到仿真结果的映射,该方案先将手机结构文件转化为点云张量数据,压缩后使用卷积神经网络提取结构特征,再通过数层全连接层映射到最终的仿真结果(S参数)。该方案的优点是适用于复杂工况的结构变化,我们重点介绍下点云的数据驱动方案。

a) 从CST文件导出几何/材料信息

MindSpore Elec提供两种自动化执行脚本,用于将cst格式文件转换为Python可读取的stp文件,使用该脚本可以实现数据批量转换,实现大规模电磁仿真:

  • 基于CST的VBA接口自动调用导出json文件和stp文件:打开CST软件的VBA Macros Editor,导入generate_pointcloud目录下的export_stp.bas文件,将json文件和stp文件路径更改为想要存放的位置,然后点击Run即可导出json文件和stp文件。其中,json文件中包含了模型的端口位置以及stp文件对应的材料信息。

  • 对于CST2019或更新的版本,支持使用Python直接调用CST:直接调用generate_pointcloud目录下的export_stp.py文件即可。

b)点云数据生成

stp文件无法直接作为神经网络的输入,需要先转换为规则的张量数据,MindSpore Elec提供将stp文件高效转化为点云张量数据的接口,generate_pointcloud目录下的generate_cloud_point.py文件提供该接口调用示例。

调用时,通过配置stp_path和json_path可以指定用来生成点云的stp和json文件的路径;material_dir指定stp对应的材料信息的路径,材料信息直接在cst软件中导出;sample_nums指定x、y、z三个维度分别生成多少个点云数据;bbox_args用来指定生成点云数据的区域,即(x_min, y_min, z_min, x_max, y_max, z_max)。

c) 数据压缩

如果点云分辨率设置较高,仅单条点云数据的后处理就需巨大的内存和计算量,因此MindSpore Elec提供数据压缩功能。用户可以调用data_compression目录下的脚本,压缩原始点云数据,该压缩过程分两步:

  • 首次使用时需要调用train.py训练压缩模型,若已有压缩模型检查点可以跳过该步。

  • 模型训练结束后即可调用data_compress.py进行数据压缩。

d) 电磁仿真计算

点云数据准备完毕后即可调用MindSpore Elec full_em和S_parameter目录下的电磁仿真模型,实现全量电磁场和S参数的仿真计算,每个仿真过程均可以分为如下两步:

  • 调用train.py训练仿真模型。

  • 模型训练结束后调用eval.py进行全量电磁场或S参数的仿真计算。

e) 实验结果:在手机电磁仿真场景中,仿真精度媲美传统科学计算软件,同时性能提升10倍。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值