精华内容
下载资源
问答
  • MNIST

    万次阅读 2017-12-21 15:56:33
    Mnist **学习内容: ** **1.学习MNIST的数据解析以及softmax回归算法。 ** **2.创建一个基于图片像素识别图片数字的模型。 ** **3.使用TensorFlow来训练模型识别数字,这个学习的过程是让它去看成千上万的图片。 ...
    Mnist
    学习内容:
    1.学习MNIST的数据解析以及softmax回归算法。
    2.创建一个基于图片像素识别图片数字的模型。
    3.使用TensorFlow来训练模型识别数字,这个学习的过程是让它去看成千上万的图片。
    4.使用我们的测试数据来验证模型的准确性。
    5.得出每次测试数据的正确率。

    **简单介绍下Mnist: **
    **MNIST是一个简单的视觉计算数据集,它是像下面这样手写的数字图片: **


    **每张图片还额外有一个标签记录了图片上数字是几,例如上面几张图的标签就是:5、0、4、1。 **
    **本次将会展现如何训练一个模型来识别这些图片,最终实现模型对图片上的数字进行预测。 **

    from __future__ import absolute_import
    from __future__ import division
    from __future__ import print_function
    
    import argparse  #解析训练和检测数据模块
    import sys
    
    from tensorflow.examples.tutorials.mnist import input_data
    
    import tensorflow as tf
    
    FLAGS = None
    
    
    def main(_):
      # Import data 
      mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)
    
      # Create the model
      x = tf.placeholder(tf.float32, [None, 784]) #此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值
      W = tf.Variable(tf.zeros([784, 10])) # tf.zeros表示所有的维度都为0 
      b = tf.Variable(tf.zeros([10]))
      y = tf.matmul(x, W) + b  #对应每个分类概率值。
    
      # Define loss and optimizer
      y_ = tf.placeholder(tf.float32, [None, 10])
    
      # The raw formulation of cross-entropy,
      #
      #   tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(tf.nn.softmax(y)),
      #                                 reduction_indices=[1]))
      #
      # can be numerically unstable.
      #
      # So here we use tf.nn.softmax_cross_entropy_with_logits on the raw
      # outputs of 'y', and then average across the batch.
      cross_entropy = tf.reduce_mean(
          tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
      train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
    
      sess = tf.InteractiveSession()
      tf.global_variables_initializer().run()
      # Train
      for _ in range(1000):
        batch_xs, batch_ys = mnist.train.next_batch(100)
        sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    
      # Test trained model
      correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
      accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
      print(sess.run(accuracy, feed_dict={x: mnist.test.images,
                                          y_: mnist.test.labels}))
    
    if __name__ == '__main__':
      parser = argparse.ArgumentParser()
      parser.add_argument('--data_dir', type=str, default='/tmp/tensorflow/mnist/input_data',
                          help='Directory for storing input data')
      FLAGS, unparsed = parser.parse_known_args()
      tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
    

    基于Keras 搭建 MNIST识别

    
    
    from  __future__ import  print_function
    import keras
    from keras.datasets import mnist
    from keras.models import  Sequential
    from keras.layers import Dense,Dropout,Flatten,Activation
    from keras.layers import Conv2D,MaxPooling2D
    from keras import backend as K
    import os
    
    #可视化
    import keras.callbacks
    
    
    batch_size = 128
    num_classes = 10
    epochs = 2
    
    save_dir = os.path.join(os.getcwd(), 'saved_models')
    model_name = 'keras_mnist_trained_model.h5'
    
    img_rows,img_cols = 28,28
    
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    
    if K.image_data_format() == "channels_first":
        x_train = x_train.reshape(x_train.shape[0],1,img_rows,img_cols)
        x_test = x_test.reshape(x_test.shape[0],1,img_rows,img_cols)
        input_shape = (1,img_rows,img_cols)
    else:
        x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols,1)
        x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols,1)
        input_shape = ( img_rows, img_cols,1)
    
    x_train = x_train.astype('float32')
    x_test = x_test.astype('float32')
    x_train /=255
    x_test /=255
    
    
    y_train = keras.utils.to_categorical(y_train,num_classes)
    y_test = keras.utils.to_categorical(y_test,num_classes)
    
    model = Sequential()
    
    model.add(Conv2D(32,kernel_size=(3,3),input_shape=input_shape))
    model.add(Activation('relu'))
    model.add(Conv2D(64,kernel_size=(3,3)))
    model.add(Activation('relu'))
    model.add(Conv2D(128,kernel_size=(3,3)))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2,2)))
    model.add(Dropout(0.25))
    model.add(Flatten())
    model.add(Dense(256))
    model.add(Activation('relu'))
    model.add(Dropout(0.25))
    model.add(Dense(num_classes,activation='softmax'))
    model.summary()
    
    model.compile(loss=keras.losses.categorical_crossentropy,
                  optimizer=keras.optimizers.Adadelta(),
                  metrics=['accuracy'])
    
    tb_config = keras.callbacks.TensorBoard(
        log_dir= './logs',
        write_images= 1,
        histogram_freq= 1)
    
    cbks = [tb_config]
    
    
    
    history=model.fit(x_train,y_train,
              batch_size=batch_size,
              epochs=epochs,
              verbose=1,
              callbacks= cbks,
              validation_data=(x_test,y_test))
    
    # Save model and weights
    if not os.path.isdir(save_dir):
        os.makedirs(save_dir)
    model_path = os.path.join(save_dir, model_name)
    model.save(model_path)
    print('Saved trained model at %s ' % model_path)
    
    
    
    
    
    score = model.evaluate(x_test,y_test,verbose=0)
    
    print('Test loss:',score[0])
    print('Test accuracy:',score[1])
    

    单个图片识别

    from  __future__ import  print_function
    from keras.datasets import mnist
    from keras.models import load_model
    import numpy as np
    
    
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    
    
    model=load_model('./saved_models/keras_mnist_trained_model.h5')
    
    import cv2
    # print(x_test[100],y_test[100])
    print(x_test[100].shape)
    # input_img=cv2.resize(x_test[100],(28,28))
    input_img = np.reshape(x_test[100],[1,28,28,1])
    print(input_img.shape)
    predict_class = np.argmax(model.predict(input_img))
    
    print(predict_class)
    
    展开全文
  • mnist

    2017-09-25 16:01:07
    1、./data/mnist/get_mnist.sh 获取数据集 2、./data/mnist/get_mnist.sh 数据集转化 3、CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt网络结构 4、CAFFE_ROOT/examples/mnist/lenet_solver.prototxt网络...

    1、./data/mnist/get_mnist.sh 获取数据集

    2、./data/mnist/get_mnist.sh 数据集转化

    3、CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt网络结构

    4、CAFFE_ROOT/examples/mnist/lenet_solver.prototxt网络超参数的设置

    5、./examples/mnist/train_lenet.sh 训练出模型

    6、调用训练好的模型测试
    ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/model/lenet_iter_10000.caffemodel -gpu=0(GPU版本)


    展开全文
  • 数据集包括了MNIST和FashionMNIST,有原始数据集raw和经过torchvision.datasets处理过的processed目录
  • MNIST 数据mnist.zip

    2019-06-13 11:23:59
    https://s3.amazonaws.com/img-datasets/mnist.npz 进行下载的。访问该 url 地址被墙了,导致 MNIST 相关的案例都卡在数据下载的环节。本文主要提供解决方案
  • 该数据集是64x64尺寸的简单MNIST样式的医学图像; 最初是从其他数据集中获取的,然后加工成这种样式。有58954个医学图像属于6个类别。 Medical MNIST_datasets.txt Medical MNIST_datasets.zip
  • MNIST 下载

    2018-02-08 22:19:57
    MNIST 是机器学习领域的 Hello World 任务。由于各种原因,官方的开源实现往往会出现报错。本资源解决了此问题,并整合了:MNIST原始数据、经过转换的MNIST图片、一个简单的MNIST实现脚本,可完美运行。
  • Pytorch-GAN-MNIST-FashionMNIST-USPS 针对MNIST,FashionMNIST和USPS数据集的GAN的Pytorch实现。 生成的样本 MNIST #### FashionMNIST![FashionMNIST](/ results / FashionMNIST.png)#### USPS![USPS](/ ...
  • 详解 MNIST 数据集

    万次阅读 多人点赞 2017-07-17 20:41:35
    MNIST 数据集已经是一个被”嚼烂”了的数据集, 很多教程都会对它”下手”, 几乎成为一个 “典范”. 不过有些人可能对它还不是很了解, 下面来介绍一下.MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它...

    MNIST 数据集已经是一个被”嚼烂”了的数据集, 很多教程都会对它”下手”, 几乎成为一个 “典范”. 不过有些人可能对它还不是很了解, 下面来介绍一下.

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

    • Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)
    • Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)
    • Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)
    • Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)

    MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据.

    不妨新建一个文件夹 – mnist, 将数据集下载到 mnist 以后, 解压即可:

    dataset

    图片是以字节的形式进行存储, 我们需要把它们读取到 NumPy array 中, 以便训练和测试算法.

    import os
    import struct
    import numpy as np
    
    def load_mnist(path, kind='train'):
        """Load MNIST data from `path`"""
        labels_path = os.path.join(path,
                                   '%s-labels-idx1-ubyte'
                                   % kind)
        images_path = os.path.join(path,
                                   '%s-images-idx3-ubyte'
                                   % kind)
        with open(labels_path, 'rb') as lbpath:
            magic, n = struct.unpack('>II',
                                     lbpath.read(8))
            labels = np.fromfile(lbpath,
                                 dtype=np.uint8)
    
        with open(images_path, 'rb') as imgpath:
            magic, num, rows, cols = struct.unpack('>IIII',
                                                   imgpath.read(16))
            images = np.fromfile(imgpath,
                                 dtype=np.uint8).reshape(len(labels), 784)
    
        return images, labels

    load_mnist 函数返回两个数组, 第一个是一个 n x m 维的 NumPy array(images), 这里的 n 是样本数(行数), m 是特征数(列数). 训练数据集包含 60,000 个样本, 测试数据集包含 10,000 样本. 在 MNIST 数据集中的每张图片由 28 x 28 个像素点构成, 每个像素点用一个灰度值表示. 在这里, 我们将 28 x 28 的像素展开为一个一维的行向量, 这些行向量就是图片数组里的行(每行 784 个值, 或者说每行就是代表了一张图片). load_mnist 函数返回的第二个数组(labels) 包含了相应的目标变量, 也就是手写数字的类标签(整数 0-9).

    第一次见的话, 可能会觉得我们读取图片的方式有点奇怪:

    magic, n = struct.unpack('>II', lbpath.read(8))
    labels = np.fromfile(lbpath, dtype=np.uint8)

    为了理解这两行代码, 我们先来看一下 MNIST 网站上对数据集的介绍:

    TRAINING SET LABEL FILE (train-labels-idx1-ubyte):
    
    [offset] [type]          [value]          [description] 
    0000     32 bit integer  0x00000801(2049) magic number (MSB first) 
    0004     32 bit integer  60000            number of items 
    0008     unsigned byte   ??               label 
    0009     unsigned byte   ??               label 
    ........ 
    xxxx     unsigned byte   ??               label
    The labels values are 0 to 9.

    通过使用上面两行代码, 我们首先读入 magic number, 它是一个文件协议的描述, 也是在我们调用 fromfile 方法将字节读入 NumPy array 之前在文件缓冲中的 item 数(n). 作为参数值传入 struct.unpack>II 有两个部分:

    • >: 这是指大端(用来定义字节是如何存储的); 如果你还不知道什么是大端和小端, Endianness 是一个非常好的解释. (关于大小端, 更多内容可见<<深入理解计算机系统 – 2.1 节信息存储>>)
    • I: 这是指一个无符号整数.

    通过执行下面的代码, 我们将会从刚刚解压 MNIST 数据集后的 mnist 目录下加载 60,000 个训练样本和 10,000 个测试样本.

    为了了解 MNIST 中的图片看起来到底是个啥, 让我们来对它们进行可视化处理. 从 feature matrix 中将 784-像素值 的向量 reshape 为之前的 28*28 的形状, 然后通过 matplotlib 的 imshow 函数进行绘制:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(
        nrows=2,
        ncols=5,
        sharex=True,
        sharey=True, )
    
    ax = ax.flatten()
    for i in range(10):
        img = X_train[y_train == i][0].reshape(28, 28)
        ax[i].imshow(img, cmap='Greys', interpolation='nearest')
    
    ax[0].set_xticks([])
    ax[0].set_yticks([])
    plt.tight_layout()
    plt.show()

    我们现在应该可以看到一个 2*5 的图片, 里面分别是 0-9 单个数字的图片.

    0-9

    此外, 我们还可以绘制某一数字的多个样本图片, 来看一下这些手写样本到底有多不同:

    fig, ax = plt.subplots(
        nrows=5,
        ncols=5,
        sharex=True,
        sharey=True, )
    
    ax = ax.flatten()
    for i in range(25):
        img = X_train[y_train == 7][i].reshape(28, 28)
        ax[i].imshow(img, cmap='Greys', interpolation='nearest')
    
    ax[0].set_xticks([])
    ax[0].set_yticks([])
    plt.tight_layout()
    plt.show()

    执行上面的代码后, 我们应该看到数字 7 的 25 个不同形态:

    7

    另外, 我们也可以选择将 MNIST 图片数据和标签保存为 CSV 文件, 这样就可以在不支持特殊的字节格式的程序中打开数据集. 但是, 有一点要说明, CSV 的文件格式将会占用更多的磁盘空间, 如下所示:

    • train_img.csv: 109.5 MB
    • train_labels.csv: 120 KB
    • test_img.csv: 18.3 MB
    • test_labels: 20 KB

    如果我们打算保存这些 CSV 文件, 在将 MNIST 数据集加载入 NumPy array 以后, 我们应该执行下列代码:

    np.savetxt('train_img.csv', X_train,
               fmt='%i', delimiter=',')
    np.savetxt('train_labels.csv', y_train,
               fmt='%i', delimiter=',')
    np.savetxt('test_img.csv', X_test,
               fmt='%i', delimiter=',')
    np.savetxt('test_labels.csv', y_test,
               fmt='%i', delimiter=',')

    一旦将数据集保存为 CSV 文件, 我们也可以用 NumPy 的 genfromtxt 函数重新将它们加载入程序中:

    X_train = np.genfromtxt('train_img.csv',
                            dtype=int, delimiter=',')
    y_train = np.genfromtxt('train_labels.csv',
                            dtype=int, delimiter=',')
    X_test = np.genfromtxt('test_img.csv',
                           dtype=int, delimiter=',')
    y_test = np.genfromtxt('test_labels.csv',
                           dtype=int, delimiter=',')

    不过, 从 CSV 文件中加载 MNIST 数据将会显著发给更长的时间, 因此如果可能的话, 还是建议你维持数据集原有的字节格式.

    参考:
    - Book , Python Machine Learning.

    展开全文
  • MNIST数字分类:MNIST数字分类基本
  • mnist和fashion mnist区别

    2020-06-21 20:54:03
    mnist之后,还出现了一个旨在代替经典mnist数据集的Fashion MNIST,同mnist一样,它也是被用作深度学习程序的“hello world”,而且也是由70k张28*28的图片组成的,它们也被分为10类,有60k被用作训练,10k被用作...

    在mnist之后,还出现了一个旨在代替经典mnist数据集的Fashion MNIST,同mnist一样,它也是被用作深度学习程序的“hello world”,而且也是由70k张28*28的图片组成的,它们也被分为10类,有60k被用作训练,10k被用作测试。唯一的区别就是,fashion mnist的十种类别由手写数字换成了服装。

    展开全文
  • 简化版的MNIST读取文件,斋藤康毅《深度学习入门》必备源码,简洁版,测试通过
  • MNIST分类器 MNIST数据集的分类器
  • mnist数据集

    2017-11-14 18:55:36
    mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集mnist 数据集
  • MNIST的数据

    2018-05-22 18:04:11
    MNIST的数据,免官网下载,MNIST的数据MNIST的数据MNIST的数据MNIST的数据
  • MNIST分类 MNIST,您好!
  • Tensorflow mnist 与 fashion-mnist 数据读取教程,直达博客Tensorflow 笔记 ⅩⅢ——“百无聊赖”:深挖 mnist 数据集与 fashion-mnist 数据集的读取原理,经典数据的读取你真的懂了吗?,详细解读 mnist 与 ...
  • Dataset之MNIST:自定义函数mnist.load_mnist根据网址下载mnist数据集(四个ubyte.gz格式数据集文件) 目录 下载结果 运行代码 下载结果 运行代码 mnist.py文件 # coding: utf-8 try: import ...
  • mnist数据库

    2015-10-30 11:10:52
    mnist数据库,转化成mat格式,方便大家用matlab读取mnist数据库,该数据库可用于神经网络的训练,可作为练习用
  • MNIST图像分类 MNIST(“国家标准技术研究院”)是计算机视觉的事实上的“ Hello World”数据集。 自从1999年发布以来,这个经典的手写图像数据集已成为基准分类算法的基础。 随着新的机器学习技术的出现,MNIST仍然...
  • get_mnist.sh1 get_mnist.sh2 create_mnist-lmdb train_lenet用于caffe内部mnist训练,可以用于获取数据和制作数据
  • MNIST数据库处理-matlab生成mnist_uint8.mat。 功能:将下载得到的二进制文件转换为10进制数据,提取像素数据和标签数据 适用:仅适用于MNIST数据集,修改后可适用于其他
  • mnist-matlab:用于MATLAB的MNIST手写数字数据库
  • keras 源码中下载MNIST。数据源是通过 url = https://s3.amazonaws.com/img-datasets/mnist.npz 进行下载的。访问该 url 地址被墙了,导致 MNIST 相关的案例都卡在数据下载的环节。因此给出这个数据集供大家使用!
  • MNIST及FASHION MNIST 数据读取

    万次阅读 2018-05-05 11:33:19
    概要 代码 结果展示概要mnist 数据集链接:http://yann.lecun.com/exdb/mnist/ ...mnist 已经被用烂了,也太简单了。所以现在准备采用fashion_mnist。 两者的读取方式完全一致。这里以fashion mnist作为例子。Fa
  • MNIST数据库

    热门讨论 2014-12-25 09:18:53
    MNIST数据库,包含训练数据,训练标签,测试数据,测试标签
  • tensorflow MNIST数据包

    2018-11-07 13:33:03
    TensorFlow MNIST数据包,测试用的,主要是MNIST手写数字识别
  • caffe自带的mnist例程中,转换后的训练集mnist_train_lmbd和测试集mnist_test_lmdb
  • MNIST分类 Klasyfikacja na zbiorze MNIST zużyciemMLP oraz CNN。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,329
精华内容 13,731
关键字:

mnist