La cantidad de datos es demasiado grande, cómo leer mnist escrito a mano a la vez usando Python
La estructura de mnist es la siguiente, seleccione train-images
ARCHIVO DE IMAGEN DEL CONJUNTO DE ENTRENAMIENTO (train-images-idx3-ubyte):
[desplazamiento] [ tipo] [valor] [descripción]
0000 Entero de 32 bits 0x00000803 (2051) número mágico
0004 Entero de 32 bits 60000 número de imágenes
0008 Número entero de 32 bits y 28 filas
0012 Número entero de 32 bits y 28 columnas
0016 ¿Byte sin firmar?
0017 ¿Byte sin signo? Píxel
..........
xxxx ¿Byte sin signo?
En otras palabras, debemos leer. cuatro enteros de 32 bits antes
Probé muchos métodos y descubrí que, al menos para mí, usaba
struct.unpack_from('>IIII' , buf , index)
index += struct .calcsize('>IIII')
Luego use struc.unpack_from para leer el archivo
'>III' significa usar el método del extremo grande para leer 4 int32 sin anotaciones p>
Luego lea una imagen para probar si la lectura fue exitosa
im = struct.unpack_from('>IIII' , buf , index)
índice += estructura .calcsize('>IIII')