1
- # PaddleScience 介绍
1
+ # PaddleScience 模块介绍
2
2
3
- PaddleScience 是一个基于深度学习框架 PaddlePaddle 的科学计算套件,支持物理信息驱动、数据驱动、数理融合三种求解方式,已支持 8+ 各领域的案例,并提供了基础 API 供用户使用与二次开发 。
3
+ PaddleScience 在代码结构上划分为 12 个模块。从一般深度学习工作流的角度来看,这 12 个模块分别负责构建输入数据、构建神经网络模型、构建损失函数、构建优化器,训练、评估、可视化等功能。从科学计算角度来看,部分模块承担了不同于 CV、NLP 任务的功能,比如用于物理机理驱动的 Equation 模块,定义方程公式和辅助高阶微分计算;用于涉及几何场景采样的 Geometry 模块,定义简单、复杂几何形状并在其内部、边界采样构造数据;Constraint 模块将不同的优化目标视为一种“约束”,使得套件能用一套训练代码统一物理机理驱动(无监督训练)、数据驱动(监督训练)、数理融合(半监督训练)三种不同的求解流程 。
4
4
5
- ## 1. 运行流程
5
+ ## 1. 整体工作流
6
6
7
- ![ TODO] ( workflow.jpg )
7
+ <figure markdown >
8
+ ![ TODO] ( workflow.jpg ) { loading=lazy }
9
+ <figcaption > workflow of PaddleScience </figcaption >
10
+ </figure >
8
11
9
12
## 2. 模块简介
10
13
14
+ <figure markdown >
15
+ ![ TODO] ( modules.jpg ) { loading=lazy }
16
+ <figcaption > Relation of different modules </figcaption >
17
+ </figure >
18
+
11
19
### 2.1 [ Arch] ( ./zh/api/arch.md )
12
20
13
21
Arch 模块负责各种神经网络模型的组网、参数初始化、前向计算等功能,内置了多种模型供用户使用。
14
22
15
23
### 2.2 [ AutoDiff] ( ./zh/api/autodiff.md )
16
24
17
- AutoDiff 模块负责计算高阶(1、2阶)微分功能,内置全局单例模式对象 ` jacobian ` 、` hessian ` 供用户使用。
25
+ AutoDiff 模块负责计算高阶微分功能,内置基于 Paddle 自动微分机制的全局单例 ` jacobian ` 、` hessian ` 供用户使用。
18
26
19
27
### 2.3 [ Constraint] ( ./zh/api/constraint.md )
20
28
21
- 为了在套件中统一物理信息驱动、数据驱动、数理融合三种求解方式,我们将数据构造、输入到输出的计算过程、损失函数等功能记录到了 Constraint 这一模块中,有了这些对象 ,Constraint 就能表示不同的训练目标,如
29
+ 为了在套件中统一物理信息驱动、数据驱动、数理融合三种求解方式,我们将数据构造、输入到输出的计算过程、损失函数等必要接口在其定义完毕之后,统一记录在 Constraint 这一模块中,有了这些接口 ,Constraint 就能表示不同的训练目标,如:
22
30
23
31
- ` InteriorConstraint ` 定义了在给定的几何区域内部,按照给定输入到输出的计算过程,利用损失函数优化模型参数,使得模型输出满足给定的条件;
24
32
- ` BoundaryConstraint ` 定义了在给定的几何区域边界上,按照给定输入到输出的计算过程,利用损失函数优化模型参数,使得模型输出满足给定的条件;
@@ -29,19 +37,19 @@ AutoDiff 模块负责计算高阶(1、2阶)微分功能,内置全局单例
29
37
30
38
### 2.4 Data
31
39
32
- Data 模块负责数据的读取、包装以及预处理,由 3 个子模块分别负责。
40
+ Data 模块负责数据的读取、包装和预处理,由以下 3 个子模块分别负责。
33
41
34
42
#### 2.4.1 [ Dataset] ( ./zh/api/data/dataset.md )
35
43
36
44
Dataset 模块存放各种数据集的包装类,将数据包装成统一的结构再用于读取。
37
45
38
46
#### 2.4.2 [ Transform] ( ./zh/api/data/process/transform.md )
39
47
40
- Transform 模块存放各种数据预处理方法 ,包括数据平移 ` Translate ` 和数据缩放 ` Scale ` ,一般与 ` data.dataset ` 结合使用。
48
+ Transform 模块存放各种基于单样本的数据预处理方法 ,包括数据平移 ` Translate ` 和数据缩放 ` Scale ` ,一般与 ` data.dataset ` 结合使用。
41
49
42
50
#### 2.4.3 [ BatchTransform] ( ./zh/api/data/process/batch_transform.md )
43
51
44
- BatchTransform 模块存放各种基于批数据的预处理方法 。
52
+ BatchTransform 模块存放各种基于批样本的数据预处理方法 。
45
53
46
54
### 2.5 [ Equation] ( ./zh/api/equation.md )
47
55
@@ -65,7 +73,7 @@ Solver 模块负责定义求解器,作为训练、评估、推理、可视化
65
73
66
74
### 2.10 [ Utils] ( ./zh/api/utils.md )
67
75
68
- Utils 模块内部存放了一些适用于多种场景下的函数 ,如在 ` reader.py ` 下的多种数据读取函数,以及在 ` logger.py ` 下的日志打印函数。
76
+ Utils 模块内部存放了一些适用于多种场景下的工具类、函数 ,如在 ` reader.py ` 下的数据读取函数,在 ` logger.py ` 下的日志打印函数,以及在 ` expression.py ` 下的方程计算类 。
69
77
70
78
### 2.11 [ Validate] ( ./zh/api/validate.md )
71
79
0 commit comments