@@ -4,25 +4,31 @@ DrivAerNet: A Parametric Car Dataset for Data-Driven Aerodynamic Design and Grap
4
4
5
5
## 论文信息
6
6
7
- | 年份 | 期刊 | 作者 | 引用数 | 论文 PDF |
8
- | ---- | ---------------------------- | ---------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------- |
7
+ | 年份 | 期刊 | 作者 | 引用数 | 论文 PDF |
8
+ | ---- | ---------------------------- | ---------------------------------------- | ------ | ---- |
9
9
| 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 |
10
10
11
11
## 代码信息
12
12
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 %$ |
16
16
17
17
=== "模型训练命令"
18
18
19
19
``` sh
20
+ wget -nc https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer%2B%2B/data.tar
21
+ tar -xvf data.tar
22
+
20
23
python drivaernet.py
21
24
```
22
25
23
26
=== "模型评估命令"
24
27
25
28
``` sh
29
+ wget -nc https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer%2B%2B/data.tar
30
+ tar -xvf data.tar
31
+
26
32
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
27
33
```
28
34
@@ -52,12 +58,6 @@ DrivAerNet: A Parametric Car Dataset for Data-Driven Aerodynamic Design and Grap
52
58
53
59
## 2. 问题定义
54
60
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
-
61
61
![ fig1] ( https://dataset.bj.bcebos.com/PaddleScience/DNNFluid-Car/DrivAer/fig/fig1.jpg )
62
62
63
63
图 1:参数化的 DrivAer 模型使用变形盒子在 ANSA 软件中进行几何变换,总共使用了 50 个几何参数和 32 个可变形实体。对变形框进行颜色编码,突出易受参数修改影响的区域,便于创建" DrivAerNet "数据集。利用这种变形技术,本研究生成了 4000 个独特的汽车设计。
273
273
274
274
在 PDF 中,问题求解通常涉及数据预处理、模型设计、训练过程以及评估与优化的多个环节。在此过程中,涉及到如何处理数据集、构建合适的约束条件、选择优化器和评估器等环节。以下是具体的介绍,包括数据集、模型(以 RegDGCNN 为例)、约束构建、优化器构建、评估器构建、以及模型的训练和评估。
275
275
276
- ** 1.数据增强类:`DataAugmentation:**
276
+ ** 1.数据增强类:` DataAugmentation ` :**
277
277
278
278
用于对点云进行随机变换,包括平移、加噪声和随机丢点,以提升模型的泛化能力。
279
279
280
- ``` py linenums="37"
280
+ ``` py linenums="37"
281
281
-- 8 < --
282
- ppsci/ arch / drivaernet_dataset.py:37 :112
282
+ ppsci/ data / dataset / drivaernet_dataset.py:37 :103
283
283
-- 8 < --
284
284
```
285
285
286
286
** 2.数据集类:` DrivAerNetDataset ` :**
287
287
288
288
用于加载 DrivAerNet 数据集,并处理点云数据(如采样、增强和归一化)。
289
289
290
- ``` py linenums="106"
290
+ ``` py linenums="106"
291
291
-- 8 < --
292
292
ppsci/ data/ dataset/ drivaernet_dataset.py:106 :330
293
293
-- 8 < --
@@ -303,7 +303,7 @@ RegDGCNN 是一种专为图形数据设计的深度学习模型,常用于处
303
303
2 . ** 特征学习** :捕获点云的局部和全局几何特征。
304
304
3 . ** 输出** :预测的空气阻力系数($C_d$),作为模型的回归输出。
305
305
306
- ``` python
306
+ ``` py
307
307
model = ppsci.arch.RegDGCNN(input_keys = cfg.MODEL .input_keys,
308
308
label_keys = cfg.MODEL .output_keys,
309
309
weight_keys = cfg.MODEL .weight_keys,
@@ -312,7 +312,7 @@ model = ppsci.arch.RegDGCNN(input_keys=cfg.MODEL.input_keys,
312
312
313
313
模型参数具体如下:
314
314
315
- ``` yaml
315
+ ``` yaml
316
316
MODEL :
317
317
input_keys : ["vertices"] # 输入数据的关键字(3D顶点数据)
318
318
output_keys : ["cd_value"] # 输出数据的关键字(空气阻力系数)
@@ -329,7 +329,7 @@ MODEL:
329
329
330
330
由于我们以监督学习方式进行训练,此处采用监督约束 ` SupervisedConstraint`:
331
331
332
- ` ` ` py linenums="34"
332
+ ` ` ` py linenums="34"
333
333
--8<--
334
334
examples/drivaernet/drivaernet.py:34:58
335
335
--8<--
@@ -339,7 +339,7 @@ examples/drivaernet/drivaernet.py:34:58
339
339
340
340
优化器是模型训练中的关键部分,用于通过梯度下降法(或其他算法)调整模型参数。在本场景中,使用了`Adam`和`SGD`优化器,并通过学习率调度器来动态调整学习率。
341
341
342
- ` ` ` py linenums="86"
342
+ ` ` ` py linenums="86"
343
343
--8<--
344
344
examples/drivaernet/drivaernet.py:86:109
345
345
--8<--
@@ -349,7 +349,7 @@ examples/drivaernet/drivaernet.py:86:109
349
349
350
350
在训练过程中通常会按一定轮数间隔,用验证集(测试集)评估当前模型的训练情况,因此使用 `ppsci.validate.SupervisedValidator` 构建评估器。
351
351
352
- ` ` ` py linenums="60"
352
+ ` ` ` py linenums="60"
353
353
--8<--
354
354
examples/drivaernet/drivaernet.py:60:81
355
355
--8<--
@@ -361,17 +361,15 @@ examples/drivaernet/drivaernet.py:60:81
361
361
362
362
完成上述设置之后,只需要将上述实例化的对象按顺序传递给 `ppsci.solver.Solver`,然后启动训练、评估。
363
363
364
- ` ` ` py linenums="112"
364
+ ` ` ` py linenums="112"
365
365
--8<--
366
366
examples/drivaernet/drivaernet.py:112:128
367
367
--8<--
368
368
` ` `
369
369
370
370
# # 4. 完整代码
371
371
372
- === "drivaernet.py"
373
-
374
- ` ` ` py linenums="15"
372
+ ` ` ` py linenums="15" title="drivaernet.py"
375
373
--8<--
376
374
examples/drivaernet/drivaernet.py:15:200
377
375
--8<--
0 commit comments