FLOPs calculator for neural network architecture written in tensorflow 2.x (tf.keras)
Project description
keras-flops
FLOPs calculator for neural network architecture written in tensorflow (tf.keras) v2.2+
This stands on the shoulders of giants, tf.profiler.
Requirements
- Python 3.6+
- Tensorflow 2.2+
Installation
This implementation is simple thanks to stands on the shoulders of giants, tf.profiler. Only one function is defined.
Copy and paste it.
Example
See colab examples here in details.
from tensorflow.keras import Model, Input
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout
from keras_flops import get_flops
# build model
inp = Input((32, 32, 3))
x = Conv2D(32, kernel_size=(3, 3), activation="relu")(inp)
x = Conv2D(64, (3, 3), activation="relu")(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Dropout(0.25)(x)
x = Flatten()(x)
x = Dense(128, activation="relu")(x)
x = Dropout(0.5)(x)
out = Dense(10, activation="softmax")(x)
model = Model(inp, out)
# Calculae FLOPS
flops = get_flops(model, batch_size=1)
print(f"FLOPS: {flops / 10 ** 9:.03} G")
# >>> FLOPS: 0.0338 G
Support
Support tf.keras.layers
as follows,
name | layer |
---|---|
Conv | Conv[1D/2D/3D] |
Conv[1D/2D]Transpose | |
DepthwiseConv2D | |
SeparableConv[1D/2D] | |
Pooling | AveragePooling[1D/2D] |
GlobalAveragePooling[1D/2D/3D] | |
MaxPooling[1D/2D] | |
GlobalMaxPool[1D/2D/3D] | |
Normalization | BatchNormalization |
Activation | Softmax |
Attention | Attention |
AdditiveAttention | |
others | Dense |
Not supported
Not support tf.keras.layers
as follows. They are calculated as zero or smaller value than correct value.
name | layer |
---|---|
Conv | Conv3DTranspose |
Pooling | AveragePooling3D |
MaxPooling3D | |
UpSampling[1D/2D/3D] | |
Normalization | LayerNormalization |
RNN | SimpleRNN |
LSTM | |
GRU | |
others | Embedding |
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
keras-flops-0.1.0.tar.gz
(4.3 kB
view hashes)
Built Distribution
Close
Hashes for keras_flops-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c0f6df1d27fcd0c43a9cc02a4e2dfcad964e8ff1c3532dff3ce3e343cc3131b |
|
MD5 | 45ca09497a14605e1c64e8f878eca5ce |
|
BLAKE2b-256 | cd145efe905e2b55aa2c9c4c7897f97b0527f7f495b891519212ff5219bb78d3 |