208 Star 856 Fork 632

GVPMindSpore / mindscience

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_CN.md 5.25 KB
一键复制 编辑 原始数据 按行查看 历史
MaZhiming 提交于 2023-09-07 09:48 . [SciAI] init sciai models

PFNN

目录

描述

PFNN (Penalty-free neural network)方法是一种基于神经网络的微分方程求解方法,适用于求解复杂区域上的二阶微分方程。该方法克服了已有类似方法在处理问题光滑性约束和边界约束上的缺陷,具有更高的精度,效率和稳定性。

论文:H. Sheng, C. Yang, PFNN: A penalty-free neural network method for solving a class of second-order boundary-value problems on complex geometries, Journal of Computational Physics 428 (2021) 110085.

模型架构

PFNN采用神经网络逼近微分方程的解。不同于大多数只采用单个网络构造解空间的神经网络方法,PFNN采用两个网络分别逼近本质边界和区域其它部分上的真解。为消除两个网络之间的影响,一个由样条函数所构造的length factor函数被引入以分隔两个网络。为进一步降低问题对于解的光滑性需求,PFNN利用Ritz变分原理将问题转化为弱形式,消除损失函数中的高阶微分算子,从而降低最小化损失函数的困难,有利于提高方法的精度。

数据集

PFNN根据方程信息和计算区域信息生成训练集和测试集。

  • 训练集:分为内部集和边界集,分别在计算区域内部和边界上采样得到。

    • 内部集:在计算区域内部采样3600个点,并计算控制方程右端项在这些点上的值作为标签。
    • 边界集:在Dirichlet边界和Neumann边界上分别采样60和180个点,并计算边界方程右端项在这些点上的值作为标签。
  • 测试集:在整个计算区域上采样10201个点,并计算真解在这些点上的值作为标签。

    注:该数据集在各向异性的扩散方程场景中使用。数据将在pfnn/Data/Data.py中处理

环境要求

快速开始

训练过程

bash run_standalone_train_gpu.sh
python train.py --problem_type [PROBLEM] --g_epochs [G_EPOCHS] --f_epochs [F_EPOCHS] --g_lr [G_LR] --f_lr [F_LR] --device [DEVICE]

评估过程

bash run_standalone_eval_gpu.sh
python eval.sh --problem_type [PROBLEM] --device [DEVICE]

脚本说明

文件描述

├── data
│   ├── data.py                     #根据方程生成数据
│   ├── dataset.py                  #生成数据集
│   └── __init__.py
├── eval.py                         #测试函数
├── README_CN.md
├── requirement.txt
├── scripts
│   ├── run_standalone_eval_gpu.sh  #测试执行脚本
│   └── run_standalone_train_gpu.sh #训练执行脚本
├── src
│   ├── callback.py
│   ├── __init__.py
│   └── model.py                    #网络模型
└── train.py                        #训练代码

train.py中的重要参数如下:

参数 描述 默认值
device_id 需要设置的设备号 None
mode MindSpore静态图模式(0)或动态图模式(1) 0

模型性能

参数 GPU
资源 GPU(Tesla V100 PCI-E), Memory 16G
更新时间 2021.10.25
Mindspore版本 1.5.0-rc1
数据集 根据方程信息和计算区域信息生成
问题 Anisotropic Diffusion
输出 精度
优化器 Adam
Speed 12.2ms/step
精度 0.00043
训练耗时 55s
Scripts Link

ModelZoo主页

请浏览官网主页

1
https://gitee.com/mindspore/mindscience.git
git@gitee.com:mindspore/mindscience.git
mindspore
mindscience
mindscience
r0.5

搜索帮助