Skip to content

Instantly share code, notes, and snippets.

@ntakouris
Last active March 12, 2021 10:02
Show Gist options
  • Save ntakouris/cd95768f23c0b4c97d8b2ddfc60a1060 to your computer and use it in GitHub Desktop.
Save ntakouris/cd95768f23c0b4c97d8b2ddfc60a1060 to your computer and use it in GitHub Desktop.
import argparse
import tensorflow as tf
tf.get_logger().setLevel(3)
from scipy.io import loadmat, savemat
parser = argparse.ArgumentParser(description='Perform inference with a Neural Network by a mat file')
parser.add_argument('--input', default='input.mat', help='input mat file path')
parser.add_argument('--output', default='output.mat', help='output mat file path')
parser.add_argument('--model', default='mymodel', help='tf savedmodel directory')
if __name__=='__main__':
args = parser.parse_args()
print('Loading model')
model = tf.keras.models.load_model(args.model)
print(f'Model inputs: {model.inputs}')
print(f'Model outputs: {model.outputs}')
print(f'Loading input file {args.input}')
inputs = loadmat(args.input)['x']
print(f'Invoking model...')
outputs = model.predict(inputs)
print(f'Saving output file {args.output}')
savemat(args.output, {
'y': outputs
})
tensorflow
scipy

Setup and Requirements

  • A tensorflow supported python version (3.6-3.8)
  • (Optionally) CUDA Drivers for your nvidia GPU
  • A TF SavedModel to use
  • Run pip install -r requirements.txt to install required packages (tensorflow, scipy)
  • A mat file with an array of proper size named 'x'

Sample Usage

Assuming that you run python in a directory like:

<your directory>
│   predict.py
│   README.md
│   requirements.txt
│   input.mat
│
└───mymodel
    │   saved_model.pb
    │
    ├───assets
    └───variables
            variables.data-00000-of-00001
            variables.index

python predict.py --input sample_input.mat --output output.mat --model mymodel Absolute paths are also supported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment