Tensorflow/Keras Model Profiler: Tells you model's memory requirement, no. of parameters, flops etc.
Project description
Tensorflow/ Keras Model Profiler
Gives you some basic but important information about your tf
or keras
model like,
- Model Parameters
- Model memory requirement on GPU
- Memory required to store parameters
model weights
. - GPU availability and GPU IDs if available
Dependencies
python >= 3.6
numpy
tabulate
tensorflow >= 2.0.0
keras >= 2.2.4
Built and tested on tensorflow == 2.3.1
Installation
using pip.
pip install model_profiler
Usage
Firs load any model built using keras or tensorflow. Here for simplicity we will load model from kera applications.
from tensorflow.keras.applications import VGG16
model = VGG16(include_top=True)
Now after installing model_profiler
run
from model_profiler import model_profiler
Batch_size = 128
profile = model_profiler(model, Batch_size)
print(profile)
Batch_size
have effect on model
memory usage so GPU memory usage need batch_size
, it's default value if 1
.
Output
| Model Profile | Value | Unit |
|----------------------------------|---------------------|---------|
| Selected GPUs | ['0', '1'] | GPU IDs |
| No. of FLOPs | 0.30932349055999997 | BFLOPs |
| GPU Memory Requirement | 7.4066760912537575 | GB |
| Model Parameters | 138.357544 | Million |
| Memory Required by Model Weights | 527.7921447753906 | MB |
Default units for the prfiler are
# in order
use_units = ['GPU IDs', 'BFLOPs', 'GB', 'Million', 'MB']
You can change units by changing the list entry in appropriate location. For example if you want to get model
FLOPs in million just change the list as follows.
# keep order
use_units = ['GPU IDs', 'MFLOPs', 'GB', 'Million', 'MB']
Availabel units are
'GB':memory unit gega-byte
'MB': memory unit mega-byte
'MFLOPs': FLOPs unit million-flops
'BFLOPs': FLOPs unit billion-flops
'Million': paprmeter count unit millions
'Billion': paprmeter count unit billions
More Examples
For further details and more examples visit my github
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for model_profiler-0.1.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3bcbb0f99c3065a2ac435493731906e03f8fe230bf017b94c49dd7e26da5552 |
|
MD5 | a15ce7dbba6a0b3d3d166ae113228cde |
|
BLAKE2b-256 | c5362afe2e49b0002c6c569a9e7f1fa25363efbbb30f48bcb2f25e1a0dd54c2d |