Tensorflow学习笔记(三)MNIST初探

本文是TensorFlow学习笔记的第三部分,主要介绍了如何使用TensorFlow进行MNIST数据集的softmax回归实现,首次运行得到的正确率为0.9204,为进一步提升模型性能,文章将探讨模型的改进方案。
摘要由CSDN通过智能技术生成
写在前面
上一篇笔记里面已经介绍了MNIST数据集使用Softmax回归进行处理的基本框架,这篇笔记会记录更多实践的过程。(适合python初学者)
因为Docker安装的tensorflow是最小包,所以教程上提到的文件没有找到有效的运行方法,就干脆抽取了项目核心部分的代码单独拿出来运行实验。

项目结构

1. 文件准备

首先到MNIST官网上下载了四个gz数据文件,放入mnist_data文件夹中,然后找到tensorflow/python/platform/gfile.py放到需要运行的文件夹下面。(如果直接去git上下载了tensorflow-r.010是不能直接运行其中的文件的,因为里面的python路径冲突的缘故。)

2. 导入必要的模块

在文件一开始就导入tensorflow程序必要的一些模块和接下来解压文件需要的一些模块。
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import gzip
import os
import tempfile
import gfile
from six.moves import urllib
from six.moves import xrange  # pylint: disable=redefined-builtin
import tensorflow as tf

3. 数据导入

对这四个文件的解压和读取主要调用:
1) _read32(bytestream)用于读取二进制文件
def _read32(bytestream):
  dt = numpy.dtype(numpy.uint32).newbyteorder('>')
  return numpy.frombuffer(bytestream.read(4), dtype=dt)[0]
2)extract_images解压图片文件
def extract_images(filename):
  """Extract the images into a 4D uint8 numpy array [index, y, x, depth]."""
  print('Extracting', filename)
  with gfile.Open(filename, 'rb') as f, gzip.GzipFile(fileobj=f) as bytestream:
    magic = _read32(bytestream)
    if magic != 2051:
      raise ValueError('Invalid magic number %d in MNIST image file: %s' %
                       (magic, filename))
    num_images = _read32(bytestream)
    rows = _read32(bytestream)
    cols = _read32(bytestream)
    buf = bytestream.read(rows * cols * num_images)
    data = numpy.frombuffer(buf, dtype=numpy.uint8)
    data = data.reshape(num_images, rows, cols, 1)
    return data
3)extract_labels解压标签文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值