ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Go读取MNIST数据

2022-04-23 08:32:06  阅读:192  来源: 互联网

标签:读取 err image gz images dx Go ubyte MNIST


MNIST数据集(Mixed National Institute of Standards and Technology database)是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含60,000个示例的训练集以及10,000个示例的测试集.

MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:

  • train-images-idx3-ubyte.gz: training set images (9912422 bytes),训练图像数据
  • train-labels-idx1-ubyte.gz: training set labels (28881 bytes),训练图像标签
  • t10k-images-idx3-ubyte.gz: test set images (1648877 bytes),测试图像数据
  • t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes),测试图像标签

以train-images-idx3-ubyte.gz为例,这是个压缩文件,需要解压为train-images.idx3-ubyte,用winhex打开此文件,如下图所示,00000803是固定,0000EA60表示有6万张图片,0000001C表示图片的宽度为28,接着0000001C表示图片的高度为28。

读取的代码可以看
https://gist.github.com/higuma/dbcd006546eb844c01e5102b4d0bcc93

使用上面代码读取第一个数字的例子


package main

import (
	"ghj1976/aigo/nn/mnist"
	"image"
	"image/color"
	"image/png"
	"log"
	"os"
)

func main() {

	dataSet, err := mnist.ReadTrainSet("../mnist")
	if err != nil {
		log.Fatal(err)
	}

	imCols := 28
	imRows := 28

	rect := image.Rect(0, 0, imCols, imRows)

	rgba := image.NewNRGBA(rect)

	log.Println(dataSet.Data[0].Digit)
	for dy := 0; dy < imCols; dy++ {
		for dx := 0; dx < imRows; dx++ {
			rgba.Set(dy, dx, color.Gray{dataSet.Data[0].Image[dx][dy]})
		}
	}

	fIm, err := os.Create("a0.png")

	if nil != err {
		log.Fatal(err)
	}

	err = png.Encode(fIm, rgba)

	if nil != err {
		log.Fatal(err)
	}

}

读取出来的是数字5

标签:读取,err,image,gz,images,dx,Go,ubyte,MNIST
来源: https://www.cnblogs.com/ghj1976/p/go-du-qumnist-shu-ju.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有