Dataset MNIST - os arquivos .gz não contêm bytes "brutos"

0

Estou tentando usar o conjunto de dados MNIST . No entanto, quando eu baixar o arquivo de imagem .gz e, em seguida, descompacte-o, eu recebo um monte de 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 esses bytes são "comprimidos", pelo menos. No entanto, conforme o "explicador de formato de arquivo" na parte inferior da página, o conteúdo do arquivo deve ser alguns inteiros de 32 bits e, em seguida, um monte de bytes não assinados. Obviamente, isso não é o que estou vendo. O que está causando isso? É porque eu cliquei duas vezes no arquivo .gz? É porque não descompactei o arquivo corretamente? É devido à falta de conhecimento técnico, e é assim que os arquivos devem ser?
Basicamente, o que eu disse acima foi como você conserta o problema e como você o resolve.
By the way: Eu estou em um Mac OS 10.13.3. O arquivo foi baixado do Google Chrome

    
por Hazard 04.03.2018 / 23:42

1 resposta

1

the content of the file should be some 32-bit integers and then a bunch of unsigned bytes. Obviously, this isn't what I'm seeing.

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

Todos os arquivos consistem em bytes brutos; tudo o mais é 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 byte bruto, mas apenas os caracteres correspondentes da tabela ASCII (ou de Unicode ou outra página de códigos).

No entanto, a página de download MNIST não diz que seus dados serão gravados como números decimais em ASCII. Em vez disso, ele usa diretamente valores de byte para codificar dados: um "inteiro de 32 bits" é distribuído em quatro bytes (8 bits cada); um "byte sem sinal" é, bem, um byte.

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

  • Você poderia abrir o arquivo em um programa "editor hexadecimal" . Os editores hexadecimais do mostram valores brutos de bytes (eles são feitos especificamente para editar arquivos binários), embora ainda seja possível fazer algum sentido dos dados mostrados.

  • Você pode escrever um programa curto para converter os dados em um formato textual. O formato original que o MNIST descreve é simples o suficiente para, por exemplo, haver de 5 a 10 linhas de Python.

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

por 05.03.2018 / 00:32