Разделить поезд / тест на основе операторов сравнения

Я пытаюсь выяснить, как разделить данные на основе этих условий, чтобы запустить CNN на этом:

Разделите набор данных для обучения / тестирования на два набора: один с метками классов ‹5 и один с метками классов› = 5. Распечатайте формы двух результирующих наборов из наборов данных для обучения и тестирования.

import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from keras.datasets import mnist
from keras.utils import to_categorical
from tensorflow import keras

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data()

Приведенный выше код - это то, как я загружаю данные. И ниже показано, как я это интерпретирую, но я не уверен, что делаю это правильно, учитывая, что обучающие изображения все еще имеют форму (50000,32,32,3). Интересно, может ли кто-нибудь помочь мне разобраться в этом.

train_labels_first = train_labels[train_labels < 5]
test_labels_first = test_labels[test_labels < 5]


train_labels_second = train_labels[train_labels >= 5]
test_labels_second = test_labels[test_labels >= 5]

person runner16    schedule 28.11.2020    source источник


Ответы (1)


Просто примените логическое индексирование к вашему поезду и протестируйте изображения. Например

train_images_first = train_images[train_labels[train_labels < 5]]
test_images_first = test_images[test_labels[test_labels < 5]]

print(train_images_first.shape, test_images_first.shape)
>>> (25000, 32, 32, 3) (5000, 32, 32, 3)

чтобы получить метки, просто назначьте train_labels[train_labels < 5] новой переменной, которая содержит метки до значения 5.

person Miguel Trejo    schedule 29.11.2020