Welcome to the official repository for AUTOMAP (Automated Transform by Manifold Approximation)
Article PDF: B. Zhu, J. Z. Liu, S. F. Cauley, B. R. Rosen, and M. S. Rosen, “Image reconstruction by domain-transform manifold learning,” Nature, vol. 555, no. 7697, pp. 487 EP ––492, Mar. 2018
MRI Training and Testing Data The data_64 folder contains, 64x64 images, 'train_input.mat' for training AUTOMAP with labels 'train_x_real.mat' and 'train_x_img.mat' for training each neural network respectively. There is also test images with similar input and output name formats. Please download these files and change the data directory inputs in the configs folder to your local directories.
Training utilizes automap_main_train.py
and a JSON config file.
python automap_main_train.py -c configs/train_64x64_ex.json
Some key config file entries:
"exp_name": Name of experiment. Intermediate model files will be stored in experiments/{exp_name}
"resume": Resume training (based on "model_load" file)". 1 or 0
"loadmodel_dir": File location of model to be loaded (for resume = 1). If not resuming a previous training run, it should be set to null.
"num_epochs": Number of training epochs
"learning_rate": Learning rate
"batch_size": Size of training mini-batch.
"fc_input_dim": Input dimensionality (# nodes)
"fc_hidden_dim": Fully-Connected Hidden layer dimensionality ((# nodes)
"fc_output_dim": Fully-Connected Output layer dimensionality (# nodes)
"im_h": 128: Output image size (height in pixels)
"im_w": 128: Input image size (height in pixels)
"data_dir": Directory of Training Data where "train_input" and "train_output" are located.
"train_input": Input data file (as .mat file)
"train_output": Output data file (as .mat file)
"test_input": Input data file (as .mat file)
"test_output": Output data file (as .mat file)
Inference utilizes automap_main_inference.py
and a JSON config file.
python automap_main_inference.py -c configs/inference_64x64_ex.json
The JSON inference config file uses similar entries as the training config file mentioned above, but instead of "train_input" and "train_output" it takes in "inference_input"