(**************************************************************************) (* *) (* Thibaut Balabonski, Sylvain Conchon, Jean-Christophe Filliâtre, *) (* Kim Nguyen, Laurent Sartre *) (* *) (* Informatique - MP2I/MPI - CPGE 1re et 2e années. *) (* Cours et exercices corrigés. Éditions Ellipses, 2022. *) (* *) (* https://www.informatique-mpi.fr/ *) (* *) (**************************************************************************) (* Lecture des fichiers de la base MNIST de caractères manuscrits. Cf http://yann.lecun.com/exdb/mnist/ Il s'agit d'images 28x28, en niveaux de gris (dans 0..255). Si une valeur `threshold` est spécifiée, alors les images sont transformées en images noir et blanc, avec seulement les valeurs 0 (< `threshold`) et 255 (> `threshold`). *) type image = { index: int; data: int array; (* taille 28x28 = 784, valeurs 0..255, par ligne *) label: int; (* 0..9 *) } val print_to_pgm: string -> image -> unit (* exporte l'image au format PGM dans un fichier *) val load: ?threshold:int -> lo:int -> hi:int -> string -> image array (* `load file lo hi` renvoie les images [lo..hi[ contenues dans les deux fichiers file-images-idx3-ubyte et file-labels-idx1-ubyte. *)