Conjunto de dados MNIST - arquivos .gz não contêm bytes "brutos"

Conjunto de dados MNIST - arquivos .gz não contêm bytes "brutos"

Estou tentando usar oConjunto de dados MNIST. No entanto, quando faço o download do arquivo de imagem .gz e o descompacto, recebo muitos bytes "compactados". Aqui está um pouco disso:

'Tπüó<$fi˛˛˛˛Ò∆∆∆∆∆∆∆∆™4CrHr£„˛·˛˛˛˙²˛åBCCC;Ï˛jS˝—ÈˇSÅ˛Ó,;˘˛>Ö˛ª   
Õ¯:~˛∂K˚9›˛¶À˛€#&˛˛M‡˛sÖ˛˛4=Ú˛˛4y˛˛€(y˛œt}´ˇˇñ]©˝˝˝˝˝˝⁄©˝˝˝’é∞˝˝z4˙˝“ 
Œ˝åM˚“z¯˝A—˝˝Au˜˝∆
L˜˝Á?Ä˝˝ê∞ˆ˝üÍ˝È#∆˝˝çN¯˝Ω»˝˝çÜ˝˝≠

Acho que são bytes "compactados", pelo menos. No entanto, de acordo com o "explicador de formato de arquivo" na parte inferior da página, o conteúdo do arquivo deve ser alguns números inteiros de 32 bits e, em seguida, um monte de bytes não assinados. Obviamente, não é isso que estou vendo.
O que está causando isso? É porque cliquei duas vezes no arquivo .gz? É porque não descompactei o arquivo corretamente? É por falta de conhecimento técnico e é assim que os arquivos deveriam ser?
Basicamente, o que eu disse acima foi como você resolve o problema e como você o resolve.
A propósito: estou em um Mac OS 10.13.3. O arquivo foi baixado do Google Chrome

Responder1

o conteúdo do arquivo deve ser alguns números inteiros de 32 bits e, em seguida, vários bytes não assinados. Obviamente, não é isso que estou vendo.

Não, é exatamente isso que você está vendo.

Todosos arquivos consistem em bytes brutos; todo o resto é uma questão de interpretação e depende do programa com o qual você está abrindo o arquivo.

Se você abrir o arquivo em um editor de texto, ele tentará mostrar o texto. Ele nunca mostrará valores de bytes brutos, mas apenas os caracteres correspondentes da tabela ASCII (ou de Unicode ou outra página de código).

No entanto, a página de download do MNISTnãodigamos que seus dados serão escritos como números decimais em ASCII. Em vez disso, ele usa diretamente valores de bytes para codificar dados: um "inteiro de 32 bits" é espalhado por quatro bytes (8 bits cada); um "byte não assinado" é, bem, um byte.

Resumindo, o arquivo baixado está em um formato personalizado que requer software especial para interpretá-lo; um editor de texto não serve. Em vez de:

  • Você pode abrir o arquivo em um"editor hexadecimal"programa. Editores hexadecimaisfazermostram valores de bytes brutos (eles são destinados especificamente à edição de arquivos binários), embora ainda dependa de você entender os dados mostrados.

  • Você poderia escrever um programa curto para converter os dados em um formato textual. O formato original descrito pelo MNIST é simples o suficiente para ter de 5 a 10 linhas de Python, por exemplo.

  • Os arquivos contêm dados gráficos – bitmaps brutos, como uma série de pixels. Assim, com um pouco mais de programação eles poderiam ser convertidos em uma série de arquivos de imagem (BMP, GIF ou PNG).

informação relacionada