精华内容
下载资源
问答
  • 导入mnist数据集
    千次阅读
    2019-04-07 19:56:16

    下载一个代码后,发现需要导入mnist数据集,首先新建一个py的文件,把代码复制过来,然后记得一定要改成这样的格式:

    from tensorflow.examples.tutorials.mnist import input_data
    mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
    

    这代表:read_data_sets()的作用就是检查目录下有没有想要的数据,没有的话下载,然后进行解压、
    在工作目录中新建一个MNIST_data文件夹,用于存放下载的数据集,新建好后不要放任何文件!任何运行代码就行了,他可以自己进行下载数据集解压到这个文件中。
    在这里插入图片描述
    解压后效果,有四个文件。
    CNN训练mnist数据集代码如下:手写数字,代码来自上一篇博客。就改了本文刚开始写的那段代码!

      #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import tensorflow as tf
    
    # 加载测试数据的读写工具包,加载测试手写数据,目录MNIST_data是用来存放下载网络上的训练和测试数据的。
    # 这里,参考我前面的博文,由于网络原因,测试数据,我单独下载后,放在当前目录的MNIST_data目录了。
    import tensorflow.examples.tutorials.mnist.input_data as input_data
    mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
    
    # 创建一个交互式的Session。
    sess = tf.InteractiveSession()
    
    # 创建两个占位符,数据类型是float。x占位符的形状是[None,784],即用来存放图像数据的变量,图像有多少张
    # 是不关注的。但是图像的数据维度有784围。怎么来的,因为MNIST处理的图片都是28*28的大小,将一个二维图像
    # 展平后,放入一个长度为784的数组中。
    # y_占位符的形状类似x,只是维度只有10,因为输出结果是0-9的数字,所以只有10种结构。
    x = tf.placeholder("float", shape=[None, 784])
    y_ = tf.placeholder("float", shape=[None, 10])
    
    
    # 通过函数的形式定义权重变量。变量的初始值,来自于截取正态分布中的数据。
    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)
    
    
    # 通过函数的形式定义偏置量变量,偏置的初始值都是0.1,形状由shape定义。
    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)
    
    
    # 定义卷积函数,其中x是输入,W是权重,也可以理解成卷积核,strides表示步长,或者说是滑动速率,包含长宽方向
    # 的步长。padding表示补齐数据。 目前有两种补齐方式,一种是SAME,表示补齐操作后(在原始图像周围补充0),实
    # 际卷积中,参与计算的原始图像数据都会参与。一种是VALID,补齐操作后,进行卷积过程中,原始图片中右边或者底部
    # 的像素数据可能出现丢弃的情况。
    def conv2d(x, w):
      return tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')
    
    
    # 这步定义函数进行池化操作,在卷积运算中,是一种数据下采样的操作,降低数据量,聚类数据的有效手段。常见的
    # 池化操作包含最大值池化和均值池化。这里的2*2池化,就是每4个值中取一个,池化操作的数据区域边缘不重叠。
    # 函数原型:def max_pool(value, ksize, strides, padding, data_format="NHWC", name=None)。对ksize和strides
    # 定义的理解要基于data_format进行。默认NHWC,表示4维数据,[batch,height,width,channels]. 下面函数中的ksize,
    # strides中,每次处理都是一张图片,对应的处理数据是一个通道(例如,只是黑白图片)。长宽都是2,表明是2*2的
    # 池化区域,也反应出下采样的速度。
    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
    
    # 定义第一层卷积核。shape在这里,对应卷积核filter。
    # 其中filter的结构为:[filter_height, filter_width, in_channels, out_channels]。这里,卷积核的高和宽都是5,
    # 输入通道1,输出通道数为32,也就是说,有32个卷积核参与卷积。
    W_conv1 = weight_variable([5, 5, 1, 32])
    # 偏置量定义,偏置的维度是32.
    b_conv1 = bias_variable([32])
    
    # 将输入tensor进行形状调整,调整成为一个28*28的图片,因为输入的时候x是一个[None,784],有与reshape的输入项shape
    # 是[-1,28,28,1],后续三个维度数据28,28,1相乘后得到784,所以,-1值在reshape函数中的特殊含义就可以映射程None。即
    # 输入图片的数量batch。
    x_image = tf.reshape(x, [-1,28,28,1])
    
    # 将2维卷积的值加上一个偏置后的tensor,进行relu操作,一种激活函数,关于激活函数,有很多内容需要研究,在此不表。
    h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
    # 对激活函数返回结果进行下采样池化操作。
    h_pool1 = max_pool_2x2(h_conv1)
    
    # 第二层卷积,卷积核大小5*5,输入通道有32个,输出通道有64个,从输出通道数看,第二层的卷积单元有64个。
    W_conv2 = weight_variable([5, 5, 32, 64])
    b_conv2 = bias_variable([64])
    
    # 第二层卷积:激活和池化(类似第一层卷积操作的激活和池化)
    h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
    h_pool2 = max_pool_2x2(h_conv2)
    
    # 图片尺寸减小到7x7,加入一个有1024个神经元的全连接层,用于处理整个图片。把池化层输出的张量reshape成一些
    # 向量,乘上权重矩阵,加上偏置,然后对其使用ReLU激活操作。
    W_fc1 = weight_variable([7 * 7 * 64, 1024])
    b_fc1 = bias_variable([1024])
    
    # 将第二层池化后的数据进行变形
    h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
    # 进行矩阵乘,加偏置后进行relu激活
    h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)
    
    keep_prob = tf.placeholder("float")
    # 对第二层卷积经过relu后的结果,基于tensor值keep_prob进行保留或者丢弃相关维度上的数据。这个是为了防止过拟合,快速收敛。
    h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)
    
    W_fc2 = weight_variable([1024, 10])
    b_fc2 = bias_variable([10])
    
    # 最后,添加一个softmax层,就像前面的单层softmax regression一样。softmax是一个多选择分类函数,其作用和sigmoid这个2值
    # 分类作用地位一样,在我们这个例子里面,softmax输出是10个。
    y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)
    
    # 实际值y_与预测值y_conv的自然对数求乘积,在对应的维度上上求和,该值作为梯度下降法的输入
    cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv))
    
    # 下面基于步长1e-4来求梯度,梯度下降方法为AdamOptimizer。
    train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
    
    # 首先分别在训练值y_conv以及实际标签值y_的第一个轴向取最大值,比较是否相等
    correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))
    
    # 对correct_prediction值进行浮点化转换,然后求均值,得到精度。
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
    
    # 先通过tf执行全局变量的初始化,然后启用session运行图。
    sess.run(tf.global_variables_initializer())
    for i in range(20000):
      # 从mnist的train数据集中取出50批数据,返回的batch其实是一个列表,元素0表示图像数据,元素1表示标签值
      batch = mnist.train.next_batch(50)
      if i % 100 == 0:
        # 计算精度,通过所取的batch中的图像数据以及标签值还有dropout参数,带入到accuracy定义时所涉及到的相关变量中,进行
        # session的运算,得到一个输出,也就是通过已知的训练图片数据和标签值进行似然估计,然后基于梯度下降,进行权值训练。
        train_accuracy = accuracy.eval(feed_dict={x:batch[0], y_: batch[1], keep_prob: 1.0})
        print("step %d, training accuracy %g"%(i, train_accuracy))
      # 此步主要是用来训练W和bias用的。基于似然估计函数进行梯度下降,收敛后,就等于W和bias都训练好了。
      train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
    
    # 对测试图片和测试标签值以及给定的keep_prob进行feed操作,进行计算求出识别率。就相当于前面训练好的W和bias作为已知参数。
    print("cf accuracy %g"%accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))
    

    测试效果如下:
    在这里插入图片描述

    更多相关内容
  • = mnist.load_data() print(X_train.shape) 注意,这时需要下载mnist数据集,我试了手动导入数据集的方法,各种不成功,所以最后用ladder自动下载了。 疑问: Keras数据集的存储位置是这里: 我手动下载了4个数据...

    步骤

    • 先在Anaconda Prompt里激活TensorFlow环境:

    输入命令:activate + 环境名称(我配置的TensorFlow环境名称叫tensorflow),变成下面这个样子:

    (base) C:\Users\Wind>activate tensorflow
    
    (tensorflow) C:\Users\Wind>
    •  接着输入:pip install keras,等待安装,如图:
    (tensorflow) C:\Users\Wind>pip install keras
    • 在TensorFlow环境下,打开Jupyter Notebook:

    from keras.datasets import mnist
    (X_train,Y_train),(X_test,Y_test) = mnist.load_data()
    print(X_train.shape)

    注意,这时需要下载mnist的数据集,我试了手动导入数据集的方法,各种不成功,所以最后用ladder自动下载了。

    疑问:

    Keras数据集的存储位置是这里:

    我手动下载了4个数据集,是这样的:

    为什么把这几个文件复制到datasets文件夹里面,还是识别不了呢?

    (如果有谁知道怎么解决,还请告知,感谢!!)


    by 风

    展开全文
  • 直接将本数据集下载到任意文件夹,导入的时候直接导入对应的文件夹即可
  • TensorFlow 2.0 快速导入MNIST数据集 由于当初下载的Tensorflow是2.0版本的与《智能通信:基于深度学习的物理层设计》一书的版本不兼容,在第三章中导入MNIST数据中出现问题。 在Tensorflow1.0中导入数据库用如下...

    TensorFlow 2.0 快速导入MNIST数据集

    由于当初下载的Tensorflow是2.0版本的与《智能通信:基于深度学习的物理层设计》一书的版本不兼容,在第三章中导入MNIST数据中出现问题。

    • 在Tensorflow1.0中导入数据库用如下代码
      在这里插入图片描述由于版本不兼容,出现波浪线错误
    • 在Tensorflow2.0中可以用如下代码导入MNIST数据集

    在这里插入图片描述

    • 结果如下

    在这里插入图片描述

    `

    展开全文
  • 首先需要下载mnist数据集,网址MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp://yann.lecun.com/exdb/mnist/ 下载好的文件名字如下 不用解压,放到下面路径即可,(要...

    帮助大家避免走过的坑,话不多说直接开整 

     

    首先需要下载mnist数据集,网址MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgesicon-default.png?t=L9C2http://yann.lecun.com/exdb/mnist/

    下载好的文件名字如下 

     

    不用解压,放到下面路径即可 ,(要根据自己的keras安装路径选择文件放置位置)

     

     

    放置好后输入下面代码即可 

    ##########从keras文件夹中的datasets文件中导入mnist数据集
    from keras.datasets import mnist
    
    
    #########将数据集载入,X_train为训练集数据,Y_train为训练集标签,X_test为测试集数据,Y_test为测试集标签
    (X_train,Y_train),(X_test,Y_test)=mnist.load_data()
    
    
    #########打印查看数据
    print('X_train.shape:'+str(X_train.shape))
    print('Y_train.shape:'+str(Y_train.shape))
    print('X_test.shape:'+str(X_test.shape))
    print('Y_test.shape:'+str(Y_test.shape))
    

    结果 

     

    展开全文
  • sklearn学习过程中无法导入MNIST数据集 今天在学习SVM识别MNIST数据集的过程中,代码运行一直报错,无法连接到主机,也就是无法下载MNIST数据集。网上查了好多中方法,对我这种新手来说都有点费力看懂,导致解决了...
  • 解决pytorch本地导入mnist数据集报错问题
  • MNIST官网链接:http://yann.lecun.com/exdb/mnist/ Cifar官网链接:http://www.cs.toronto.edu/~kriz/cifar.html 作者:XJTU_Ironboy 时间:2017年9月 开头语   TensorFlow编程学习的入门一般都是基于M
  • mnist_tf 使用tensorflow和pycharm对mnist数据集进行分类
  • 1.一开始采用官网上利用input_data来...2.后面采用 keras加载mnist数据集,又会报出如下错误 URL fetch fail:http://googelsourc…………………………………… 解决办法:先将mnist数据集下载到本地,放到自己想...
  • ImportError: DLL load failed with error code -1073741795tensorflow 导入mnist数据集是出现无法导入的错误 搜索了很多相关问题终于找到了答案,这位同志也遇到了相同的问题,楼下有人给出了我需要的答案 由于...
  • MNIST数据集导入与预处理

    千次阅读 2021-10-20 01:34:53
    在做KNN+LDA对MNIST数据集分类时遇到了不少坑,本篇文章主要是记录一下解决这些坑的方案,完整的代码和实验报告等作业结束提交后再进行上传。 MNIST数据集 MNIST数据集简介 MNIST数据集,是一组由美国高中生和人口...
  • #mnist = input_data.read_data_sets('MNIST_data', one_hot=True) from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 转载于:...
  • 导入本地已下载的MNIST数据集,四个文件: t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz import matplotlib.pyplot as plt import gzip import ...
  • 本地导入MNIST手写数据集

    千次阅读 2020-05-17 22:06:09
    在使用tensorflow加载mnist数据集时报错,因为下载数据集的链接被墙了,没法下载数据集。 解决方法: step1.手动下载数据集到本地。 mnist数据集的格式有两种,一种是gz格式,包含4个文件,一种是npz格式。 .gz格式...
  • 我相信在我的案例中,当它发现MNIST_数据目录中不存在这些文件时,它并没有下载这些文件。在我遇到了这个问题,很烦人。在解决方案:通过浏览器直接从控制台中使用curl获取数据。在curl -Ohttp://yann.l...
  • 关于Pytorch的MNIST数据集的预处理详解MNIST的准确率达到99.7%用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,例如数据增强,丢失,伪随机化等。操作系统:ubuntu18.04显卡:GTX1080tipython版本:2.7(3.7)网络...
  • tensorflow基础教程中所用mnist数据集,在线下载会出问题,最好采用以下步骤: # (1) 首先在当前项目下新建 MNIST_data # (2) http://yann.lecun.com/exdb/mnist/ 从该网址将4个附件全部下载 # (3) 载的四个文件...
  • 问题: Exception: URL fetch failure on ...下载mnist.npz,将其保存到某文件夹下。 def load_data(): path='X://XX...//...//mnist.npz' f = np.load(path)
  • 深度学习之MNIST数据集导入

    千次阅读 2020-04-16 23:24:30
    (1)导入MNIST数据集; (2)分析MNIST样本特点定义变量; (3)构建模型; (4)训练模型并输出中间状态参数; (5)测试模型; (6)保存模型; (7)读取模型; 使用工具: 操作系统win7, Spyder(Anaconda3), ...
  • python加载mnist数据集

    千次阅读 2021-08-10 11:04:02
    在Nvidia Digits上用tensorflow框架直接拿来使用的mnist数据集十分方便,现在为了究竟,使用Python直接实现加载mnist数据集。 from tensorflow.example.tutorials.mnist import input_data import tensorflow as tf ...
  • mnist.zip,mnist.npz
  • Python读取MNIST数据集

    千次阅读 2021-01-27 08:53:36
    和图像文件类似:第1-4个byte存的是文件的magic number,对应的十进制大小是2049;第5-8个byte存的是number of ...计算一下训练标签文件train-labels-idx1-ubyte的文件大小:1x60000+8=60008 bytes。与该文件...
  • 从这里可以提取到mnist数据集,如果链接过期,请及时联系我,我会更新 。 2.好,这一切尘埃落定以后,需要把下载到本地的数据集,提取到 jupyter notebook 下,你所创建的 .ipynb文件的当前目录下。 3.输入代码...
  • PyTorch 手把手教你实现 MNIST 数据集

    千次阅读 多人点赞 2021-06-27 12:23:35
    Pytorch 手把手教你实现 MNIST 数据集. (超详细)
  • 使用卷积神经网络对mnist数据集进行分析 使用tensorflow对mnist数据集进行建模 #1、导入需要用到的包 import tensorflow as ...#2、导入mnist数据集 mnist = input_data.read_data_sets("data/", one_hot=True) #3、
  • 机器学习实战(从本地导入mnist数据集) 第三章这里总是报错,从本地导入好久也没有成功,在网上也搜索了好几天,成功了没有记录下来,在第八章降维中又用到了数据集,查了一下午,终于找到了解决方案,所以记录...
  • 如何导入MNIST数据集

    万次阅读 2018-10-24 15:49:28
    问题 当我使用github上别人的代码: ...from tensorflow.examples.tutorials.mnist import input_data from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/t...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,381
精华内容 3,752
关键字:

导入mnist数据集