ValueError:期望 x 为非空数组或数据集(Collab 上的 Tensor Flow lite 模型制造商)

Men*_*ena 3 keras tensorflow tensorflow-lite tf.keras google-mlkit

我下面这个关于创建使用TensorFlow精简版上的协同合作模型制作自定义模型教程。

import pathlib
path = pathlib.Path('/content/employee_pics') 
count = len(list(path.glob('*/*.jpg')))
count

data = ImageClassifierDataLoader.from_folder(path)
train_data, test_data = data.split(0.5)
Run Code Online (Sandbox Code Playgroud)

我有第 2 步的问题:

model = image_classifier.create(train_data)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:ValueError: Expect x to be a non-empty array or dataset。

在此处输入图片说明

难道我做错了什么?不过,示例中提供的数据集运行良好。为什么?

小智 10

此错误是由训练数据的大小小于batch_size不允许的大小引起的。

默认batch_size为32,即训练图片数量不少于32张。无需计算每个标签的图片数量,只需确保总训练图片至少为32张即可。

您需要选择以下解决方案之一来解决它。

  • 设置batch_size小于训练数据大小,例如:
image_classifier.create(train_data, batch_size=4)
Run Code Online (Sandbox Code Playgroud)
  • 通过添加更多数据来增加训练数据的大小。


小智 5

我刚刚做了一些手动测试。不完全知道为什么,但对于这个二元分类器,当我增加数据量以确保每个标签至少使用 16 个图像用于训练时,它开始工作。

对于您的情况,因为您将训练/测试分割为 0.5,所以每个标签需要 32 个图像。您可以尝试一下是否可以解决您的问题?