neural-opt-surya


Nameneural-opt-surya JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/me/packaging_tutorial
SummaryMy package short description
upload_time2023-04-04 21:35:34
maintainer
docs_urlNone
authorSurya
requires_python>=3.6
licenseMIT License
keywords keyword_1 keyword_2
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Toolbox for analyzing neural topology optimization 
## Table of Contents
- [Short summary](#summary)
- [Installation](#installation)
- [Usage](#usage)
- [License](#license)
## Summary
### Topology optimization (TO)
Topology optimization is a mathematical technique used in design to optimize the layout of structures for maximum performance. It involves using algorithms to find the most efficient distribution of material within a given design space, subject to specified constraints. Here, we consider the simplest case of minimizing the compliance of a structure subjected to a linear volume constraint. In simpler terms, we have limited material that needs to be arranged such that the structure formed is as stiff as possible. Using gradient based optimizers, we update the material distribution until convergence.

### Neural reparameterization
Conventional TO uses a grid based parameterization (the design is representated as an image with the pixels being the variables to be updated). Neural reparameterization changes this parameterization to the parameter space of a neural network. By updating these parameters, you update the design indirectly. Three papers introduced varying archietctures with differing efefctiveness. They are as follows:
1. [Neural reparameterization improves structural optimization](https://arxiv.org/abs/1909.04240)
2. [TOuNN: Topology Optimization using Neural Networks](https://rdcu.be/c81ev)
3. [Length Scale Control in Topology Optimization using Fourier Enhanced Neural Networks](https://arxiv.org/abs/2109.01861)

![image](https://user-images.githubusercontent.com/72760812/229469709-ff62199c-599d-49eb-8f00-69c1199902a3.png)

### Analyzing optimization in neural parameter space
The high-dimensional nature of neural network parameter spaces makes it difficult to analyze. We hope to provide a collection of tools to probe the optimization process empirically to gain insights. The tools have been collected from many papers and will include the following :
1. Loss landscape visualization (based on [Visualizing the Loss Landscape of Neural Nets](https://arxiv.org/abs/1712.09913))
2. Hessian analysis (Will be implemented soon)
3. Trajectory analysis (Will be implemented soon)

## Installation

Instructions for how to install and run the project:

- git clone https://github.com/bessagroup/neural_opt.git

or

- pip install using `pip install neural-opt-surya`

Note: create a virtual environment with the packages mentioned in `requirements.txt`.
or use the attached `tested_env.yml` to create a conda environment (Linux only).

## Usage

Examples of how to use the project are detailed in the examples folder.
Roughly, there are two main modules,
1. `neural_structural_opt` (Modified from [Hoyer et al.](https://github.com/google-research/neural-structural-optimization))
2. `analysis_tools` (Modified from [Chatzimichailidis et al.](https://github.com/cc-hpc-itwm/GradVis))

The first is used to run the simulation and save the parameters of the model and offers many choices in terms of the
neural network models and optimizers. Once the parameters are saved, the second module can be used to create qualitative visualizations.
At present, the available visualizations include:
- Filter normalized random projection to 2D
- Projection using first two PCA components.

## License

This project is licensed under the MIT License - see the LICENSE.md file for details.




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/me/packaging_tutorial",
    "name": "neural-opt-surya",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "keyword_1,keyword_2",
    "author": "Surya",
    "author_email": "my_email@email.address",
    "download_url": "https://files.pythonhosted.org/packages/80/12/acceea083fb21970ce7b2dcb4d6a40f8ac1b85c0fefaed4c841b60531ffc/neural_opt_surya-1.0.1.tar.gz",
    "platform": null,
    "description": "# Toolbox for analyzing neural topology optimization \n## Table of Contents\n- [Short summary](#summary)\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n## Summary\n### Topology optimization (TO)\nTopology optimization is a mathematical technique used in design to optimize the layout of structures for maximum performance. It involves using algorithms to find the most efficient distribution of material within a given design space, subject to specified constraints. Here, we consider the simplest case of minimizing the compliance of a structure subjected to a linear volume constraint. In simpler terms, we have limited material that needs to be arranged such that the structure formed is as stiff as possible. Using gradient based optimizers, we update the material distribution until convergence.\n\n### Neural reparameterization\nConventional TO uses a grid based parameterization (the design is representated as an image with the pixels being the variables to be updated). Neural reparameterization changes this parameterization to the parameter space of a neural network. By updating these parameters, you update the design indirectly. Three papers introduced varying archietctures with differing efefctiveness. They are as follows:\n1. [Neural reparameterization improves structural optimization](https://arxiv.org/abs/1909.04240)\n2. [TOuNN: Topology Optimization using Neural Networks](https://rdcu.be/c81ev)\n3. [Length Scale Control in Topology Optimization using Fourier Enhanced Neural Networks](https://arxiv.org/abs/2109.01861)\n\n![image](https://user-images.githubusercontent.com/72760812/229469709-ff62199c-599d-49eb-8f00-69c1199902a3.png)\n\n### Analyzing optimization in neural parameter space\nThe high-dimensional nature of neural network parameter spaces makes it difficult to analyze. We hope to provide a collection of tools to probe the optimization process empirically to gain insights. The tools have been collected from many papers and will include the following :\n1. Loss landscape visualization (based on [Visualizing the Loss Landscape of Neural Nets](https://arxiv.org/abs/1712.09913))\n2. Hessian analysis (Will be implemented soon)\n3. Trajectory analysis (Will be implemented soon)\n\n## Installation\n\nInstructions for how to install and run the project:\n\n- git clone https://github.com/bessagroup/neural_opt.git\n\nor\n\n- pip install using `pip install neural-opt-surya`\n\nNote: create a virtual environment with the packages mentioned in `requirements.txt`.\nor use the attached `tested_env.yml` to create a conda environment (Linux only).\n\n## Usage\n\nExamples of how to use the project are detailed in the examples folder.\nRoughly, there are two main modules,\n1. `neural_structural_opt` (Modified from [Hoyer et al.](https://github.com/google-research/neural-structural-optimization))\n2. `analysis_tools` (Modified from [Chatzimichailidis et al.](https://github.com/cc-hpc-itwm/GradVis))\n\nThe first is used to run the simulation and save the parameters of the model and offers many choices in terms of the\nneural network models and optimizers. Once the parameters are saved, the second module can be used to create qualitative visualizations.\nAt present, the available visualizations include:\n- Filter normalized random projection to 2D\n- Projection using first two PCA components.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details.\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "My package short description",
    "version": "1.0.1",
    "split_keywords": [
        "keyword_1",
        "keyword_2"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e3e782ea3ab617ec1230c7df3669e3c850921b6c6796259c2b41b90f2310a68b",
                "md5": "2eec5ddefc9414a8d6601fa9196bceed",
                "sha256": "3d3e3953caa2892dd54e2517a1a8d58112e14cbe930cd4085565862d1a34bd77"
            },
            "downloads": -1,
            "filename": "neural_opt_surya-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2eec5ddefc9414a8d6601fa9196bceed",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 50947,
            "upload_time": "2023-04-04T21:35:55",
            "upload_time_iso_8601": "2023-04-04T21:35:55.638013Z",
            "url": "https://files.pythonhosted.org/packages/e3/e7/82ea3ab617ec1230c7df3669e3c850921b6c6796259c2b41b90f2310a68b/neural_opt_surya-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8012acceea083fb21970ce7b2dcb4d6a40f8ac1b85c0fefaed4c841b60531ffc",
                "md5": "705211854e5ce780766b3c0ea528f989",
                "sha256": "581ce01975a9759d81be56bc5530622dcf390b71366f3488bd12a24bba63398b"
            },
            "downloads": -1,
            "filename": "neural_opt_surya-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "705211854e5ce780766b3c0ea528f989",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 43476,
            "upload_time": "2023-04-04T21:35:34",
            "upload_time_iso_8601": "2023-04-04T21:35:34.791210Z",
            "url": "https://files.pythonhosted.org/packages/80/12/acceea083fb21970ce7b2dcb4d6a40f8ac1b85c0fefaed4c841b60531ffc/neural_opt_surya-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-04 21:35:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "me",
    "github_project": "packaging_tutorial",
    "lcname": "neural-opt-surya"
}
        
Elapsed time: 0.04897s