Partage
  • Partager sur Facebook
  • Partager sur Twitter

lecture d'un fichier idx

Sujet résolu
    2 juillet 2020 à 17:34:39

    Bonjour, je code actuellement un reseau de neurone qui se base sur le fichier de la base de donnée du MINST mais le problème c'est que quand j'essaye de lire le fichier les 4 premiers octets (le nombre magique) sont : 0x1f, 0x8b, 0x08, 0x08, je ne comprends pas du tout ce resultat etant donné que normalement les deux premiers sont toujours nuls, le troisième indique le type de données et le quatrième le nombre de dimentions pour le vecteur/matrice de données.

    j'ai essayé de le retélécharger, rien à faire le résultat était le même je me suis donc dit que ça devait être mon code qui n'allais pas donc le voici :

    #include <iostream>
    //#include <vector>
    #include <cstdlib>/*
    #include <chrono>
    #include <functional>*/
    #include <fstream>
    
    using namespace std;
    unsigned int getInt(FILE *fp);
    int main()
    {
        std::cout << "read test" << std::endl;
        FILE *fp(NULL);
        if ( (fp = fopen("C:/Users/LL/Downloads/t10k-images-idx3-ubyte.gz", "rb")) == NULL ) {
             printf("Je ne peux pas ouvrirle fichier");
             exit(1);
        }
        unsigned char octetActuel = 0;
    
    
        int j = 0;
    
        while ( ((fread(&octetActuel, sizeof(octetActuel), 1, fp) ) != 0) && j < 4 ) {
            printf("%x | ", octetActuel);
            j++;
        }
        fclose(fp);
        return 0;
    }
    
    unsigned int getInt(FILE *fp)
    {
        unsigned char ch(0);
        unsigned int result(0);
        for(int i(0); i < 4; i++)
        {
            ch = fgetc(fp);
            result <<= 8;
            result += ch;
        }
    
        return result;
    }
    

    voici sinon la doc d'idx personnellement j'ai fais le tour d'à peu près tout à mon avis alors je me suis demandé si ce n'était pas le fichier qui avait un problème mais apparemment beaucoup de gens l'utilisent sans problèmes, je pense donc que c'est plus ma méthode ou ma compréhension du format qui est mauvaise.

    Merci d'avance et bonne journée

    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2020 à 17:41:19

      Heu, ".gz" à la fin du fichier, c'est pour le fait qu'il est compressé, comme un .zip sous Windows.

      Vous décompressez le fichier où, SVP ?

      https://www.commentcamarche.net/contents/386-fichier-gz

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        2 juillet 2020 à 18:21:41

        ... alors bon je me sens légerement stupide tout a coup... en effet bacelar le problème venait du fait que je n'ai pas décompressé le fichier...

        Comme quoi souvent les bug les plus long a résoudre ont aussi les solutions les plus simple :)

        Merci beaucoup et désolé de mon inattention.

        -
        Edité par Yolo974 2 juillet 2020 à 18:22:29

        • Partager sur Facebook
        • Partager sur Twitter

        lecture d'un fichier idx

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown