This software is an deep learning application for modeling processing-structure-property (PSP) linkages for two phase high contrast three-dimensional material. It is a feature-engineering-free framework, which directly takes raw data as input, trains a convolutional neural network (CNN) and outputs output.
To use this software, what the algorithm requires as input are a numpy array. The shape of this numpy array is (x, 51, 51, 51, 1) where x is the number of microscale volume elements (MVEs) and the dimension of microstructure should be three-dimensional (i.e. 515151). The CNN will establish the PSP linkages in the materials system and predict its macroscale (effective) stiffness.
- Python 2.7
- Numpy 1.12.1 (or higher)
- Sklearn 0.18.1 (or higher)
- Keras 2.0.0 (or higher)
- HDF5
- Pickle
- TensorFlow 1.1.0
data.pkl
: Pickle file. Example data of two-phase high contrast three-dimensional microstructure. It contains 20 MVEs and the dimension of each MVE is 51x51x51.label.pkl
: Pickle file. Example data of two-phase high contrast three-dimensional microstructure. It contains the macroscale (effective) stiffness of MVE in filedata.pkl
.best_model.h5
: HDF5 file. The best CNN model train in this work (see paper in the related publication section). It contains the configuration and weights for the CNN.model.py
: Use the best CNN model train in this work (see paper in the related publication section) to directly predict the macroscale (effective) stiffness of the microstructure.train_model.py
: The script to train CNN and its architecture is the same the best CNN train in this work (see paper in the related publication section). To get the best performance on new dataset, users might need to design customized architecture and tune the hyperparameters of CNN.
- To run
model.py
:- Make sure the
best_model.h5
in the same folder. - The data file of microstructure should be named as
data.pkl
, which is a pickle file. The data should be a numpy array. The shape of bumpy array is (x, 51, 51, 51, 1) where x is the number of microscale volume elements (MVEs) and the dimension of microstructure should be three-dimensional (i.e. 51x51x51). - To run this file, use commend
python model.py
- The predicted results will be save in a Pickle file, named
predict_result.pkl
in the same folder.
- Make sure the
- To run
train_model.py
:- The data file of microstructure should be named as
data.pkl
, which is a pickle file. The data should be a numpy array. The shape of bumpy array is (x, 51, 51, 51, 1) where x is the number of microscale volume elements (MVEs) and the dimension of microstructure should be three-dimensional (i.e. 515151). - The macroscale (effective) stiffness of microstructure should be
named as
label.pkl
, which is a pickle file. The data should be a numpy array. The shape of bumpy array is (x, 1) where x is the number of microscale volume elements (MVEs) in the same order asdata.pkl
- To run this file, use commend
python train_model.py
- The script will save your CNN model in the same folder and the name is my_model.h5.
- The data file of microstructure should be named as
- Z. Yang, Y. Yabansu, R. Al-Bahrani, W. Liao, A. Choudhary, S. Kalidindi, and A. Agrawal, "Deep Learning Approaches for Mining Structure-property Linkages in High Contrast Composites From Simulation Datasets," in the Computational Materials Science, vol. 151, pp. 278-287, 2018.
- Zijiang Yang (zyz293@ece.northwestern.edu)
- Ankit Agrawal (ankitag@ece.northwestern.edu)
- Alok Choudhary (choudhar@ece.northwestern.edu)
This work is supported in part by the following grants: AFOSR award FA9550-12-1-0458; NIST award 70NANB14H012; NSF award CCF-1409601; DOE awards DESC0007456, DE-SC0014330; and Northwestern Data Science Initiative.