> 该项目是《Problem-independent machine learning (PIML)-based topology optimization—A universal approach》的python复现 ## 环境依赖 > PyTorch 2.1.0 CUDA 12.1 Ubuntu 20.04 (没有用到新特性,所以应该对旧版本兼容) ``` # matplotlib==3.8.0 # numpy==1.26.2 # scikit_learn==1.3.0 # torch==2.1.0 pip install -r requirements.txt ``` ## Usage TODO: [done] 用argparse模块管理网络参数 ### Train ``` python train.py # --mod [mod1 mod2 mod3] 参数选择训练数据,默认mod1 # e.g. python train.py --mod mod1 ``` ### Test ``` python test.py # --mod [mod1 mod2 mod3] 参数选择测试数据,默认mod3 # --pretrained_model_path <xxx_opt.pt> 选择预训练模型,默认./checkpoints/ANN_mod1/ANN_mod1_opt.pt # e.g. python test.py --mod mod3 --pretrained_model_path ./checkpoints/ANN_mod1/ANN_mod1_opt.pt ``` ### TopOpt with EMsFEA net ``` python topopt_EMsFEA.py # 参数详见options/topopt_options.py ``` ## 数据集 > 通过经典二维拓扑优化代码生成的三组形变、密度数据 > > Download from: > > http://118.195.195.192:3000/GyeongYun/EMsFEA-net/raw/branch/resources/datasets.zip mod1:  mod2:  mod3:  ## 项目结构 ``` . |-- README.md |-- checkpoints | `-- ... |-- datasets | |-- train | | `--resolution | | |--u | | `--xPhys | |-- test |-- models | |-- ANN.py | |-- AutoEncoder.py | |-- CNN.py | `-- __init__.py |-- options | |-- __init__.py | |-- base_options.py | |-- test_options.py | `-- train_options.py |-- requirements.txt |-- results |-- test.py |-- topopt_EMsFEA.py |-- train.py |-- utils | |-- data_loader.py | |-- data_standardizer.py | |-- topopt_88.py | `-- utils.py `-- visualization.ipynb ```