Tensorflow Lite, Image size is zero error

Viewed 393

Actually, my question is very simple. I would like to use my own data in tensorflow lite model. So, i wrote these line of codes:

root_path = r"C:\Users\90531\Desktop\dataset\b"
image_path = os.path.join(os.path.dirname(root_path), '1602854451425')

data = DataLoader.from_folder(image_path)

Also, this is the error that I encountered:

  File "C:\Users\90531\AppData\Roaming\Python\Python39\site-packages\tensorflow_examples\lite\model_maker\core\data_util\image_dataloader.py", line 73, in from_folder
    raise ValueError('Image size is zero')

ValueError: Image size is zero
2 Answers

This happens when the Dataloader cannot infer the labels of your images. The images should be divided into subfolders according to the class they belong to:

from tflite_model_maker.image_classifier import DataLoader
import seedir as sd

image_path = '/content/images'
sd.seedir(image_path, style='spaces', indent=4, anystart='- ')
data = DataLoader.from_folder(image_path)
- images/
    - class1/
        - result_image.png
    - class2/
        - result_image1.png

INFO:tensorflow:Load image with size: 2, num_label: 2, labels: class1, class2.

enter image description here

in google colab, use the following code:

import tensorflow as tf

data_path = tf.keras.utils.get_file(
      'flower_photos',
      'https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
      untar=True)


from tflite_model_maker import image_classifier
from tflite_model_maker.image_classifier import DataLoader

# Load input data specific to an on-device ML app.
data = DataLoader.from_folder(data_path)
train_data, test_data = data.split(0.9)

# Customize the TensorFlow model.
model = image_classifier.create(train_data)

# Evaluate the model.
loss, accuracy = model.evaluate(test_data)

# Export to Tensorflow Lite model and label file in `export_dir`.
model.export(export_dir='/tmp/')
Related