GithubHelp home page GithubHelp logo

maderator / lstm-crystal Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 8 MB

Evaluation of LSTM networks on GaAs crystal growth data simulations.

License: MIT License

Jupyter Notebook 98.50% Python 1.05% MATLAB 0.44% Shell 0.02%

lstm-crystal's Introduction

LSTM-crystal-growth

This repository contains the code accompanying the Master thesis "Study of LSTM Networks on Natural Sciences Data". It includes the Python implementation of the LSTM networks with the cell-level and architecture level variations together with experiments on the VGF GaAs growth simulation dataset.
The repository also contains Matlab implementation of LSTM networks with peephole and residual connections. After the comparison of Matlab and Tensorflow implementations, the Matlab implementation was not further developed.

How to obtain dataset

  • Feel free to contact me at janmadera97+mff_thesis_data at gmail.com and I will ask for premission to share the dataset with you.
  • If the email address is not available, please, try it again without the +mff_thesis_data part.
  • After obtaining the dataset, name it as sequencesInputsOutputs.mat and save it to the data/ folder.
  • Afterward, run the python/data_processing/train_test_split.ipynb notebook to prepare data splits for training and testing.

Repository structure

The repository is structured as follows:

  • data/ - contains the VGF GaAs growth simulation raw dataset (not included in the repository and needs to be obtained separately)
  • experiments/ - contains the experiments with LSTM networks on the VGF GaAs growth simulation dataset
  • matlab/ - contains the drafts of Matlab implementation of LSTM networks with peephole and residual connections
  • python/ - contains the Python implementation of LSTM networks with cell-level and architecture level variations
    • The custom LSTM cell and architecture implementations are located in the python/predictor/models directory
    • The rnn_cell.py file contains the implementation of the custom LSTM cell with all the variations like peephole connections, residual connections, layer normalization, and there are also implementations of LSTM cells with only residual connections or only peephole connections.
    • The custom_layers.py file contains the implementation of the DilatedRNN layer described in our thesis.
    • The rnn_constructor.py file contains a parser of the parameters (from basic_parameters.py file) and it construct the multi layered LSTM networks based on the received parameters.
  • README.MD - this file

Installation

Project dependencies have to be installed before the experiments can be run. The project was implemented on Windows 11 and therefore if the project is run on different OS, we cannot guarantee that it will work properly.

Windows

1. Python installation

1. Install pyenv-win

1. Install Python 3.10.11, pip, and all dependencies

We used Python version 3.10.11 as the newer versions were not compatible with some dependencies.

  1. To install Python 3.10.11 use package installer available online at adress https://www.python.org/downloads/release/python-31011/
  • Add python to Windows PATH variable.
    • If the option "Add Python X.Y to PATH" is not selected, the install directory can be added to PATH variable later by following one of many tutorials available online (for example this one https://realpython.com/add-python-to-path/).
    • Check if the Python is available (and which version) in Powershell using command
      python --version
  1. Pip should be installed along with python (try command pip --version in powershell to see which version of pip is installed). If it is not installed, try calling this command in powershell:

    python -m ensurepip --upgrade
  2. Install setuptools and wheel packages using pip:

    pip install --upgrade setuptools wheel
  • Optional step is to install pyenv environment or anaconda to manage python environments.
  1. Install all project dependencies using pip:

    • In the root directory of the project, call this command:
    pip install -r requirements.txt
  2. Install the project as a python package:

    1. In order to use our models which are implemented in python/predictor directory and other functions/classes implemented in the python/ or experiments/ directory from anywhere in the project, we need first to install them as a python package:
    • In the root directory of the project, call this command:
      pip install -e .
      The -e option (or --editable) installs project in editable mode so that new functions/classes and changes made to file in any package of the project (folders containing file __init__.py) can be used without first having to install the project again.

Running the experiments

lstm-crystal's People

Contributors

maderator avatar

Watchers

Lucian avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.