Не понимают часть классов и изменяют форму чтения файла набора данных h5 - PullRequest
0 голосов
/ 07 июня 2018

Здравствуйте, может кто-нибудь объяснить шаг за шагом, что происходит в следующем коде?Особенно классы деталей и изменение формы?tnx

def load_data():
    train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
    train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
    train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels

    test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
    test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
    test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels

    classes = np.array(test_dataset["list_classes"][:]) # the list of classes

    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))

    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

1 Ответ

0 голосов
/ 07 июня 2018

Большинство строк просто загружают datasets из файла h5.Оболочка np.array(...) не нужна.test_dataset[name][:] достаточно для загрузки массива.

test_set_y_orig = test_dataset["test_set_y"][:]

test_dataset - открытый файл.test_dataset["test_set_y"] - это dataset в этом файле.[:] загружает набор данных в массив numpy.Посмотрите документы h5py для получения более подробной информации о загрузке dataset.

. Из

train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))

я делаю вывод, что загруженный массив равен 1d с формой (n,),и эта форма просто добавляет начальное измерение, делая его (1,n).Я бы кодировал его как

train_set_y_orig = train_set_y_orig[None,:]

, но результат тот же.

В массиве classes нет ничего особенного (хотя это вполне может быть массив строк).

...