Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isosnovik/nn4topopt
Code for "Neural Networks for Topology Optimization"
https://github.com/isosnovik/nn4topopt
keras neural-networks python tensorflow topology-optimization
Last synced: 3 months ago
JSON representation
Code for "Neural Networks for Topology Optimization"
- Host: GitHub
- URL: https://github.com/isosnovik/nn4topopt
- Owner: ISosnovik
- Created: 2017-08-04T23:05:52.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-07-02T10:36:48.000Z (over 3 years ago)
- Last Synced: 2023-03-06T18:33:41.195Z (almost 2 years ago)
- Topics: keras, neural-networks, python, tensorflow, topology-optimization
- Language: Jupyter Notebook
- Homepage:
- Size: 143 KB
- Stars: 88
- Watchers: 8
- Forks: 23
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Neural Networks for Topology Optimization
This is the code for the paper **I. Sosnovik, I. Oseledets "Neural Networks for Topology Optimization"**.
[[link](https://www.degruyter.com/view/j/rnam.2019.34.issue-4/rnam-2019-0018/rnam-2019-0018.xml)][[pdf](https://arxiv.org/pdf/1709.09578.pdf)]*In this research, we propose a deep learning based approach for speeding up the topology optimization methods. The problem we seek to solve is the layout problem. The main novelty of this work is to state the problem as an image segmentation task. We leverage the power of deep learning methods as the efficient pixel-wise image labeling technique to perform the topology optimization. We introduce the convolutional encoder-decoder architecture and the overall approach of solving the above-described problem with high performance.*
![](./src/model.png)
## Preparations
We use [TOP dataset](https://github.com/ISosnovik/top) to train the model.In order to work with dataset easier, we aggregate the files into one `.h5` dataset.
```bash
python prepare_data.py --source SOURCE_FOLDER --dataset-path WHERE_TO_SAVE
```## Training
You can train the model with script `training.py`. Here is the list of arguments:* `--dataset-path` - path to `.h5` dataset
* `--input-size` - size of the input tensor. Default is `40`
* `--batch-size` - size of a minibatch. Default is `64`
* `--epochs` - number of training epochs. Default is `30`
* `--vol-coeff` - volume constraint coefficient in total loss. Default is `1.0`
* `--iter-sampler` - iteration sampler. Either `uniform` or `poisson_`, where `LAM` is lambda in Poisson distribution. Default is `uniform`
* `--summary-prefix` - root folder to save the summary
* `--save-prefix` - root folder to save the modelJust type `bash experiments.sh` to run default experiments.
Notebook `results.ipynb` demonstrates how to reproduce some of the results from the paper.
## Citation
If you use this code for your research, please cite
@article{sosnovik2017neural,
title={Neural networks for topology optimization},
author={Sosnovik, Ivan and Oseledets, Ivan},
journal={arXiv preprint arXiv:1709.09578},
year={2017}
}