Skip to content

TF Keras Applications EfficientNetB0

Overview

In this tutorial, we demonstrate how to compile and run inference with the TF Keras Applications EfficientNetB0 model for image classification using the RBLN Python API.

Setup & Installation

Before you begin, ensure that your system environment is properly configured and that all required packages are installed. This includes:

  • System Requirements:
  • Packages Requirements:
  • Installation Command:
    pip install tensorflow numpy  
    pip install --extra-index-url https://pypi.rbln.ai/simple/ rebel-compiler>=0.7.4
    

Note

RBLN SDK is distributed as a .whl package. Please note that the RBLN compiler and runtime require an RBLN Portal account.

Using RBLN Python API

Model Compilation

Import EfficientNetB0 from the TF Keras Applications module, instantiate the model with pre-trained weights, and convert it into a tf.function.

import tensorflow as tf  
from tf_keras.applications.efficientnet import EfficientNetB0  
import rebel  # RBLN Compiler  

# Instantiate TF Keras Applications EfficientNetB0 model  
model = EfficientNetB0(weights='imagenet')  
func = tf.function(lambda input_img: model(input_img))  

# Compile the model  
input_info = [('input_img', [1, 224, 224, 3], tf.float32)]  
compiled_model = rebel.compile_from_tf_function(  
    func,  
    input_info,  
)  

# Save the compiled model to disk  
compiled_model.save('efficientnetb0.rbln')  

Model Inference

Download and preprocess the input image required for EfficientNetB0. Use preprocess_input() for proper preprocessing. Load the compiled model using RBLN Runtime and run inference on the preprocessed input. Decode the output predictions using decode_predictions() and display the top prediction.

import urllib.request  
from tf_keras.preprocessing import image  
from tf_keras.applications.efficientnet import preprocess_input, decode_predictions  
import numpy as np  

import rebel  # RBLN Runtime

# Prepare the input  
img_url = 'https://rbln-public.s3.ap-northeast-2.amazonaws.com/images/tabby.jpg'  
img_path = './tabby.jpg'  
with urllib.request.urlopen(img_url) as response, open(img_path, 'wb') as f:  
    f.write(response.read())  
img = image.load_img(img_path, target_size=(224, 224))  
x = image.img_to_array(img)  
x = np.expand_dims(x, axis=0)  
x = preprocess_input(x)  
x = np.ascontiguousarray(x)  

# Load the compiled model  
module = rebel.Runtime('efficientnetb0.rbln')  

# Run inference  
rebel_result = module.run(x)  

# Check results  
print('Top1 category:', decode_predictions(rebel_result, top=1)[0])  

The results will look like this:

Top1 category: [('n02123045', 'tabby', 0.3798828)]

Summary and References

This tutorial demonstrated how to compile and run inference with the TF Keras Applications EfficientNetB0 model using the RBLN Python API. The compiled model can be efficiently used for inference on an RBLN NPU for image classification.

References: