MNISTデータセットをCSV形式に変換


MNISTデータセットは手書き識別データセットであり、機械学習基礎のデータセットであり、その元のデータセットはバイト形式で記憶され、4つの部分を含む.
 
  • 訓練セットimages:train-images-idx 3-ubyte.gz(60000個のサンプルを含む)
  • 訓練集labels:train-labels-idx 1-ubyte.gz(60000個のラベルを含む)
  • テストセットimages:t 10 k-images-idx 3-ubyte.gz(10000個のサンプルを含む)
  • 試験セットlabels:t 10 k-labels-idx 1-ubyte.gz(10000個のラベルを含む)
  • 学習の過程で、元のデータフォーマットはあまり慣れていないので、関連資料に基づいて、それをcsvフォーマットに変換して、それぞれmnist_に保存します.train.csv,mnist_test.csvの2つのファイルで、学習用に使用します.
    MNISTデータセットのダウンロード:
    http://yann.lecun.com/exdb/mnist/またはhttps://download.csdn.net/download/albert201605/10340814
     
    変換方法:元のデータをダウンロードした後、プロジェクトディレクトリの下に置いて、解凍して、以下のコードを実行すればいいです.
     
    def convert(imgf, labelf, outf, n):
        f = open(imgf, "rb")
        o = open(outf, "w")
        l = open(labelf, "rb")
    
        f.read(16)
        l.read(8)
        images = []
    
        for i in range(n):
            image = [ord(l.read(1))]
            for j in range(28*28):
                image.append(ord(f.read(1)))
            images.append(image)
    
        for image in images:
            o.write(",".join(str(pix) for pix in image)+"
    ") f.close() o.close() l.close() convert("MNIST/train-images.idx3-ubyte", "MNIST/train-labels.idx1-ubyte", "mnist_train.csv", 60000) convert("MNIST/t10k-images.idx3-ubyte", "MNIST/t10k-labels.idx1-ubyte", "mnist_test.csv", 10000) print("Convert Finished!")

    参照先:
     
  • https://blog.csdn.net/simple_the_best/article/details/75267863
  • https://pjreddie.com/projects/mnist-in-csv/