/atomvision

Deep learning framework for atomistic image data

Primary LanguagePythonOtherNOASSERTION

name alt text codecov PyPI version GitHub tag (latest by date) GitHub code size in bytes GitHub commit activity Downloads

Atomvision

Table of Contents

Introduction

Atomvision is a deep learning framework for atomistic image data.

AtomVision

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.6 miniconda exe and install (for windows) Now, let's make a conda environment, say "version", choose other name as you like::

conda create --name vision python=3.8
source activate vision

Now, let's install the package:

Method 1 (using setup.py):

git clone https://github.com/usnistgov/atomvision.git
cd atomvision
python setup.py develop

Method 2 (using pypi):

As an alternate method, AtomVision can also be installed using pip command as follows:

pip install atomvision

Examples

Generating STEM image with convolution approximation: graphene example

stem_conv.py --file_path atomvision/tests/POSCAR --output_path STEM.png

2D-Bravais lattice classification example

This example shows how to classify 2D-lattice (5 Bravais classes) for 2D-materials STM/STEM images.

We will use imagessample_data folder. It was generated with generate_stem.py script. There are two folders train_folder, test_folder with sub-folders 0,1,2,3,4,... for individual classes and they contain images for these classes.

train_classifier_cnn.py --model densenet --train_folder atomvision/sample_data/test_folder --test_folder atomvision/sample_data/test_folder --epochs 5 --batch_size 16

Generating a t-SNE plot

train_tsne.py --data_dir atomvision/sample_data/test_folder

Generative Adversarial Network

train_gan.py --dataset_path atomvision/sample_data/test_folder/0 --epochs 2

Autoencoder

train_autoencoder.py --train_folder atomvision/sample_data/test_folder --test_folder atomvision/sample_data/test_folder --epochs 10

Reference

  1. AtomVision: A machine vision library for atomistic images

  2. The joint automated repository for various integrated simulations (JARVIS) for data-driven materials design

  3. Computational scanning tunneling microscope image database

Please see detailed publications list here.

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomvision/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi).

Code of conduct

Please see Code of conduct