Skip to content

Commit 7623338

Browse files
[Doc&Fix] Fix typos and bugs in drivaernet and drivaernet++ (#1092)
* fix typos in drivaernet and drivaernet++ * align cd_value shape with output shape * simplify scripts of driavernetpp * update metrics * update doc style
1 parent d58a744 commit 7623338

File tree

9 files changed

+247
-253
lines changed

9 files changed

+247
-253
lines changed

docs/zh/examples/drivaernet.md

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,31 @@ DrivAerNet: A Parametric Car Dataset for Data-Driven Aerodynamic Design and Grap
44

55
## 论文信息
66

7-
| 年份 | 期刊 | 作者 | 引用数 | 论文 PDF |
8-
| ---- | ---------------------------- | ---------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------- |
7+
| 年份 | 期刊 | 作者 | 引用数 | 论文 PDF |
8+
| ---- | ---------------------------- | ---------------------------------------- | ------ | ---- |
99
| 2024 | Design Automation Conference | Mohamed Elrefaie, Angela Dai, Faez Ahmed | 3 | DrivAerNet: A Parametric Car Dataset for Data-Driven Aerodynamic Design and Graph-Based Drag Prediction |
1010

1111
## 代码信息
1212

13-
|预训练模型 |神经网络|指标|
14-
|:-------:|:-------:|:-:|
15-
| [CdPrediction_DrivAerNet_r2_100epochs_5k_best_model.pdparams](https://paddle-org.bj.bcebos.com/paddlescience/models/DrivAerNet/CdPrediction_DrivAerNet_r2_100epochs_5k_pretrained.pdparams)| RegDGCNN | $R^2:87.5%$ |
13+
| 预训练模型 | 神经网络 | 指标 |
14+
| ------- | ------- | --- |
15+
| [CdPrediction_DrivAerNet_r2_100epochs_5k_best_model.pdparams](https://paddle-org.bj.bcebos.com/paddlescience/models/DrivAerNet/CdPrediction_DrivAerNet_r2_100epochs_5k_pretrained.pdparams)| RegDGCNN | $R^2:88.22%$ |
1616

1717
=== "模型训练命令"
1818

1919
``` sh
20+
wget -nc https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer%2B%2B/data.tar
21+
tar -xvf data.tar
22+
2023
python drivaernet.py
2124
```
2225

2326
=== "模型评估命令"
2427

2528
``` sh
29+
wget -nc https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer%2B%2B/data.tar
30+
tar -xvf data.tar
31+
2632
python drivaernet.py mode=eval EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/DrivAerNet/CdPrediction_DrivAerNet_r2_100epochs_5k_pretrained.pdparams
2733
```
2834

@@ -52,12 +58,6 @@ DrivAerNet: A Parametric Car Dataset for Data-Driven Aerodynamic Design and Grap
5258

5359
## 2. 问题定义
5460

55-
数据下载:
56-
`sh
57-
wget https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer%2B%2B/data.tar
58-
tar -xvf data.tar
59-
`
60-
6161
![fig1](https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer/fig/fig1.jpg)
6262

6363
图 1:参数化的 DrivAer 模型使用变形盒子在 ANSA 软件中进行几何变换,总共使用了 50 个几何参数和 32 个可变形实体。对变形框进行颜色编码,突出易受参数修改影响的区域,便于创建" DrivAerNet "数据集。利用这种变形技术,本研究生成了 4000 个独特的汽车设计。
@@ -273,21 +273,21 @@ $$
273273

274274
在 PDF 中,问题求解通常涉及数据预处理、模型设计、训练过程以及评估与优化的多个环节。在此过程中,涉及到如何处理数据集、构建合适的约束条件、选择优化器和评估器等环节。以下是具体的介绍,包括数据集、模型(以 RegDGCNN 为例)、约束构建、优化器构建、评估器构建、以及模型的训练和评估。
275275

276-
**1.数据增强类:`DataAugmentation:**
276+
**1.数据增强类:`DataAugmentation`**
277277

278278
用于对点云进行随机变换,包括平移、加噪声和随机丢点,以提升模型的泛化能力。
279279

280-
```py linenums="37"
280+
``` py linenums="37"
281281
--8<--
282-
ppsci/arch/drivaernet_dataset.py:37:112
282+
ppsci/data/dataset/drivaernet_dataset.py:37:103
283283
--8<--
284284
```
285285

286286
**2.数据集类:`DrivAerNetDataset`**
287287

288288
用于加载 DrivAerNet 数据集,并处理点云数据(如采样、增强和归一化)。
289289

290-
```py linenums="106"
290+
``` py linenums="106"
291291
--8<--
292292
ppsci/data/dataset/drivaernet_dataset.py:106:330
293293
--8<--
@@ -303,7 +303,7 @@ RegDGCNN 是一种专为图形数据设计的深度学习模型,常用于处
303303
2. **特征学习**:捕获点云的局部和全局几何特征。
304304
3. **输出**:预测的空气阻力系数($C_d$),作为模型的回归输出。
305305

306-
```python
306+
``` py
307307
model = ppsci.arch.RegDGCNN(input_keys=cfg.MODEL.input_keys,
308308
label_keys=cfg.MODEL.output_keys,
309309
weight_keys=cfg.MODEL.weight_keys,
@@ -312,7 +312,7 @@ model = ppsci.arch.RegDGCNN(input_keys=cfg.MODEL.input_keys,
312312

313313
模型参数具体如下:
314314

315-
```yaml
315+
``` yaml
316316
MODEL:
317317
input_keys: ["vertices"] # 输入数据的关键字(3D顶点数据)
318318
output_keys: ["cd_value"] # 输出数据的关键字(空气阻力系数)
@@ -329,7 +329,7 @@ MODEL:
329329
330330
由于我们以监督学习方式进行训练,此处采用监督约束 `SupervisedConstraint`:
331331

332-
```py linenums="34"
332+
``` py linenums="34"
333333
--8<--
334334
examples/drivaernet/drivaernet.py:34:58
335335
--8<--
@@ -339,7 +339,7 @@ examples/drivaernet/drivaernet.py:34:58
339339

340340
优化器是模型训练中的关键部分,用于通过梯度下降法(或其他算法)调整模型参数。在本场景中,使用了`Adam`和`SGD`优化器,并通过学习率调度器来动态调整学习率。
341341

342-
```py linenums="86"
342+
``` py linenums="86"
343343
--8<--
344344
examples/drivaernet/drivaernet.py:86:109
345345
--8<--
@@ -349,7 +349,7 @@ examples/drivaernet/drivaernet.py:86:109
349349

350350
在训练过程中通常会按一定轮数间隔,用验证集(测试集)评估当前模型的训练情况,因此使用 `ppsci.validate.SupervisedValidator` 构建评估器。
351351

352-
```py linenums="60"
352+
``` py linenums="60"
353353
--8<--
354354
examples/drivaernet/drivaernet.py:60:81
355355
--8<--
@@ -361,17 +361,15 @@ examples/drivaernet/drivaernet.py:60:81
361361

362362
完成上述设置之后,只需要将上述实例化的对象按顺序传递给 `ppsci.solver.Solver`,然后启动训练、评估。
363363

364-
```py linenums="112"
364+
``` py linenums="112"
365365
--8<--
366366
examples/drivaernet/drivaernet.py:112:128
367367
--8<--
368368
```
369369

370370
## 4. 完整代码
371371

372-
=== "drivaernet.py"
373-
374-
```py linenums="15"
372+
``` py linenums="15" title="drivaernet.py"
375373
--8<--
376374
examples/drivaernet/drivaernet.py:15:200
377375
--8<--

0 commit comments

Comments
 (0)