Tensorflow学习笔记(8)——input_data.py解析

这篇博客主要解析TensorFlow中用于读取MNIST数据库的input_data.py文件,涉及dense_to_one_hot函数、DataSet类的next_batch函数及read_data_sets函数。尽管不直接涉及TensorFlow核心操作,但这些预处理步骤对于TensorFlow项目至关重要。文章指出dense_to_one_hot函数在独立运行时可能出现错误,作者将继续研究其原因。
摘要由CSDN通过智能技术生成

这里学习一下前面用到的读取mnist数据库文件的代码。其实并没有用到Tensorlfow的东西,但是读取数据库文件是使用Tensorflow编程实现功能的基础,因此归到Tensorflow的学习笔记中。
这里需要注意的主要有以下几点:
1.dense_to_one_hot函数
2.DataSet类中next_batch函数
3.read_data_sets函数
这里有一个问题:
dense_to_one_hot函数里

def dense_to_one_hot(labels_dense, num_classes=10):
  """Convert class labels from scalars to one-hot vectors."""
  num_labels = labels_dense.shape[0]
  index_offset = numpy.arange(num_labels) * num_classes
  labels_one_hot = numpy.zeros((num_labels, num_classes))
  #labels_dense.ravel()将整个数组展成一个一维数组
  #labels_dense.flat[i]即将labels_dense看成一个一维数组,取其第i个变量
  labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1#报错?
  return labels_one_hot

注释有报错那一行,在整体程序运行的时候并没有出错,单独拿出来就出错,原因未知,还需要继续学习。
具体代码如下所示,解析如代码中注释所示:

#coding=utf-8

#input_data.py的详解
#学习读取数据文件的方法,以便读取自己需要的数据库文件(二进制文件)
"""Functions for downloading and reading MNIST data."""
from __future__ import print_function
import gzip
import os
import urllib
import numpy
SOURCE_URL = 'http://yann.lecun.com/exdb/mnist/'
def maybe_download(filename, work_directory):
  """Download the data from Yann's website, unless it's already here."""
  #判断目录文件是否存在,不存在则创建该目录
  if not os.path.exists(work_directory):
    os.mkdir(work_directory)
  #需要读取的文件路径
  filepath = os.path.join(work_directory, filename)
  if 
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值