Неправильный ли формат файла NumPy NPY? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть большой набор сгенерированных изображений из кода C #, и я хочу записать их в формат NumPy, чтобы я мог использовать их в Tensorflow. Я перешел к документации NumPy и проверил описание формата версии 1.0 NPY и обнаружил следующее:

Следующие байты HEADER_LEN формируют данные заголовка, описывающие формат массива. Это строка ASCII, которая содержит буквенное выражение Python словаря. Он завершается символом новой строки (\ n) и дополняется пробелами (\ x20), чтобы общая сумма len (магическая строка) + 2 + len (длина) + HEADER_LEN была равномерно разделена на 64 для выравниванияцелях.

Поэтому я пошел, чтобы следовать описанию, и использовал mnist.npz \ x_train.npy в качестве примера для проверки описания. Вот как выглядит заголовок:

enter image description here

Как показано выше, индекс newline или 0x0a равен 0x4f, что является 80-мбайт от начала файла. 80 делится равномерно на 16, а не на 64.

Я также прошел в конец файла и получил index последнего байта, и это: 0x2cdc64f, что составляет 47,040,079 и, следовательно, является байтом 47,040,080th в файле. 47,040,080 - 80 (header) = 47,040,000 = 60,000x28x28 (data-size as determined by 'shape' and 'descr' which is unsigned 1-byte).

Я что-то упустил или документация неверна и evenly divisible by 64 следует заменить на evenly divisible by 16?

...