Я использую пример здесь
классифицировать изображения. У меня 2147 изображений, относящихся к 11 классам. Я запускаю классификатор на пакет изображений. Пока программа идет хорошо, но я не могу назначить метки, потому что я получаю следующую ошибку в коде: labels_batch=image_labels[np.argmax(result_batch, axis=-1)]
Traceback (последний вызов был последним):>> tags_batch = image_labels [np.argmax (result_batch, axis = -1)]
IndexError: индекс 917 выходит за пределы оси 0 с размером 11
Дополнительная информация:
Мои ярлыки categories = ["Categorical_Boxplot", "Column_Charts", "Dendogram", "Heatmap", "Line_Chart", "Map","Node-Link_Diagram", "Ordination_Scatterplot", "Pie_Chart", "Scatterplot", "Stacked_Area_Chart"]
и вот как я пытаюсь присвоить этот ярлык классификатору
image_labels = np.array(categories)
result_batch = classifier_model.predict(image_batch)
labels_batch = image_labels[np.argmax(result_batch, axis=-1)]
labels_batch
result_batch.shape
(32, 1001)
Форма моих данных
Форма пакета изображения: (32, 224, 224, 3)
Форма партии этикетки: (32, 11)
Я не знаю, где я иду не так и как я могу это исправить? Я уже пытался добавить image_labels к tags_batch вместо назначения его с =
. Но это не сработало.
Классификатор:
classifier_url = "https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/2" #@param {type:"string"}
IMAGE_SIZE = hub.get_expected_image_size(hub.Module(classifier_url))
classifier_layer = layers.Lambda(classifier, input_shape=IMAGE_SIZE + [3])
classifier_model = tf.keras.Sequential([classifier_layer])
classifier_model.summary()