GithubHelp home page GithubHelp logo

00mjk / aicrystallographer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pycroscopy/aicrystallographer

0.0 0.0 0.0 166.22 MB

Here, we will upload our deep/machine learning models and 'workflows' (such as AtomNet, DefectNet, SymmetryNet, etc) that aid in automated analysis of atomically resolved images

Jupyter Notebook 99.60% Python 0.40% Shell 0.01% Dockerfile 0.01%

aicrystallographer's Introduction

The active development of the deep/machine learning routines for the analysis of atom-resolved data will now be at https://github.com/pycroscopy/atomai

AICrystallographer

To aid in the automated analysis of atomically resolved images, we will upload here our deep/machine learning models and 'workflows' (such as AtomNet, DefectNet, SymmetryNet, etc.) with the Jupyter notebooks describing in details how to perform the analysis. Most of the notebooks can be opened and executed in Google Colaboratory, which is a Jupyter notebook environment for machine learning research that requires no setup to use (and also provides free GPU and TPU hardware acceleration).

AI Crystallographer is an active project and we expect to be adding more workflows and pre-trained models in the near future. Currently it includes the following sub-packages:

  • DefectNet: Complete workflow for locating atomic defects in electron microscopy movies with a convolutional neural network using only a single movie frame to generate a training set. It is based on our paper in npj Computational Materials 5, 12 (2019), but now with the updated augmentation procedure (includes adding noise, zoom-in and flip/rotations) and using PyTorch deep learning framework instead of the Keras one for model training/predictions.
  • AtomNet: Application of a fully convolutional neural network for locating atoms in noisy experimental scanning transmission electron microscopy data. Based on our paper in ACS Nano 11, 12742 (2017), but now with a better model (gives "cleaner" predictions) and using PyTorch instead of Keras. The current models work for graphene-like lattices (e.g. graphene, WSe2) and cubic lattices (e.g. perovskites) and we expect to upload more models for different systems in the near future.
  • FerroNet: Application of different machine learning and multivariate analysis tools (neural networks, dimensionality reduction, clustering/unmixing) for analysis of ferroic distortions in high-resolution scanning transmission electron microscopy data on perovskites. Based on our paper in Appl. Phys. Lett. 115, 052902 (2019) .
  • SymmetryNet: Application of a deep convolutional network used to determine 2D Bravais lattice symmetry from atomically resolved images. Based on our paper in npj Computational Materials 4, 30 (2018).
  • Tutorials: Tutorial-like notebooks on i) using Google Colab notebooks, ii) using class activation maps for locating defects in the images, iii) using a fully convolutional neural network for cleaning atom-resolved data and locating atoms in it (both simplified and "real-world" examples).

How to use

Google Colab

This is a Jupyter notebook-centric project and the easiest way to use the tools in this package is by opening and running the notebooks in Google Colab using one of the following options: i) clicking on "Open in Colab" in the GitHub-opened notebook file (caution: it seems that GitHub is having some issues with loading graphic-heavy notebooks), ii) installing a Colab browser extension, iii) opening notebooks in this repository from Google Colab startpage. See our tutorial notebook for the best practices to work with Jupyter notebooks in Google Colab.

Docker

You may also use this package via Docker container. First, clone the repository to your local machine. Then, from your terminal, cd into the cloned repository and run

docker build -t aicr .

(you may substitute 'aicr' with any name that you like). Once it finishes buiding a Docker image, run

docker run -it -p 8080:8080 -v <path_to_AICrystallographer>:/home aicr /bin/bash

to start a container. You will now be able to launch a Jupyter notebook from inside your container by running

jupyter lab --ip=0.0.0.0 --port=8080 --allow-root

and then opening http://localhost:8080 in your browser.

aicrystallographer's People

Contributors

ziatdinovmax avatar ramav87 avatar kstub 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.