项目简介
本项目是基于MindSpore框架的二维点源时域麦克斯韦方程AI求解器。运用物理信息神经网络(PINN)方法,结合物理方程与初边界条件开展模型训练,无需监督数据,能够解决含点源的偏微分方程(PDE)问题,适用于模拟电磁波在介质中的传播过程。
项目的主要特性和功能
- 物理信息神经网络(PINN):借助神经网络逼近解空间,结合物理方程与初边界条件训练,无需监督数据。
- 多尺度网络结构:采用含周期激活函数的多尺度神经网络,提升PINN方法的准确性与收敛速度。
- 高斯平滑Dirac delta函数:将Dirac delta函数建模成连续概率密度函数,消除PINN训练中的奇异性问题。
- 不确定性加权算法:提出下界约束的不确定性加权算法,平衡点源区域和其他区域的PINN损失。
- 自动微分和损失函数计算:利用MindSpore框架的自动微分功能,计算控制方程、初始条件和边界条件的损失。
- 可视化处理:运用matplotlib和cv2库,可视化电磁场分布、预测值和误差。
安装使用步骤
环境准备
用户已下载本项目的源码文件,需确保安装了MindSpore 2.3.0 - rc2版本,硬件平台为Ascend,操作系统为Linux - aarch64,编程语言为Python 3.7。安装命令如下:
bash
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.3.0rc2/MindSpore/unified/aarch64/mindspore-2.3.0rc2-cp37-cp37m-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
也可采用自动安装方式:
bash
wget https://gitee.com/mindspore/mindspore/raw/master/scripts/install/euleros-ascend-pip.sh
MINDSPORE_VERSION=2.3.0rc2 bash -i ./euleros-ascend-pip.sh
脚本执行完成后,需重新打开终端窗口以使环境变量生效。自动安装脚本会为MindSpore创建名为mindspore_pyXX的虚拟环境(XX为Python版本,如Python 3.7则虚拟环境名为mindspore_py37)。执行以下命令查看所有虚拟环境:
bash
conda env list
执行以下命令激活虚拟环境:
bash
conda activate mindspore_py37
环境配置
配置环境变量: ```bash export GLOG_v=2
LOCAL_ASCEND=/usr/local/Ascend # the root directory of run package
export LD_LIBRARY_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/lib64:${LOCAL_ASCEND}/driver/lib64:${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}
TBE operator implementation tool path
export TBE_IMPL_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe
OPP path
export ASCEND_OPP_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp
AICPU path
export ASCEND_AICPU_PATH=${ASCEND_OPP_PATH}/..
TBE operator compilation tool path
export PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/compiler/ccec_compiler/bin/:${PATH}
Python library that TBE implementation depends on
export PYTHONPATH=${TBE_IMPL_PATH}:${PYTHONPATH} ```
运行脚本
- 运行
train.py
进行模型训练:bash python train.py
- 运行
eval.py
进行模型评估:bash python eval.py
数据准备
根据config.json
文件配置,准备训练数据和评估数据。训练数据基于五个损失函数,分别对有源区域、无源区域、边界、初始时刻进行随机采点;评估数据基于传统的时域有限差分算法生成高精度的电磁场。
结果可视化
使用visual_result
函数,将预测结果和误差进行可视化处理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】