【问题标题】:import input_data MNIST tensorflow not working导入 input_data MNIST 张量流不工作
【发布时间】:2016-02-13 09:02:08
【问题描述】:

TensorFlow MNIST example not running with fully_connected_feed.py

我检查了这个并意识到input_data 不是内置的。所以我从here 下载了整个文件夹。如何开始本教程:

import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-a5af65173c89> in <module>()
----> 1 import input_data
      2 mnist = tf.input_data.read_data_sets("MNIST_data/", one_hot=True)

ImportError: No module named input_data

我正在使用 iPython (Jupyter),所以我需要将我的工作目录更改为我下载的这个文件夹吗?或者我可以将它添加到我的tensorflow 目录中吗?如果是这样,我在哪里添加文件?我安装了tensorflowpip(在我的OSX 上),当前位置是~/anaconda/lib/python2.7/site-packages/tensorflow/__init__.py

这些文件是否可以直接通过tensorflow 访问,例如sklearn 数据集?还是我只是应该 cd 进入目录并从那里工作?例子不清楚。

编辑:

这篇文章已经过时了

【问题讨论】:

    标签: python import machine-learning tensorflow mnist


    【解决方案1】:

    假设您在目录中:/somePath/tensorflow/tutorial(这是您的工作目录)。

    您需要做的就是下载input_data.py 文件并像这样放置它。假设您调用的文件名:

    import input_data
    mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
    ...
    

    main.py,也在同一目录下。

    完成此操作后,您可以开始运行main.py,它将开始下载文件并将它们放在 MNIST_data 文件夹中(一旦它们在那里,脚本将不会在下次下载它们)。

    【讨论】:

    • 有人知道“one_hot=True”是什么意思吗?有人可以去哪里阅读他自己的这些细节?谢谢
    • 对于可能感兴趣的人,我找到了一个可能的答案,那就是:“one-hot vector是一个大多数维度为0,单个维度为1的向量。”。页面上的完整解释:tensorflow.org/versions/r0.10/tutorials/mnist/beginners/…(搜索单词'one-hot')
    • 假设我们有一个用于图像 0 到 9 的向量。所以,它是一个 10 元素向量。 one-hot 向量意味着一次只有一个类处于活动状态。因此,“6”类图像处于活动状态。或者向量中的那个元素的值为 1。
    • 更多上下文。在训练过程中,您的优化器(例如梯度下降)会最小化模型输出与 one-hot 向量之间的距离。这个距离越小,你的模型就越准确。一个常用的最小化距离函数是交叉熵函数。本质上,您的模型需要一个参考来比较它的输出,以便可以继续调整权重和偏差,直到达到可接受的精度。此引用是 one-hot 编码向量。
    • 由于引用的 input_data.py 链接不起作用,[this][1] 文件对我有用。 [1]:gist.github.com/haje01/14b0e5d8bd5428df781e
    【解决方案2】:

    老教程说,要导入MNIST数据,使用:

    import input_data
    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)
    

    这很好用。

    【讨论】:

    • 当我尝试您在新教程中提到的方法时,我收到此错误:urllib.error.URLError: &lt;urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond&gt;。知道为什么吗?
    • 我能够从here 手动下载数据。确保将文件下载到 tensorflow MNIST_data 文件夹 tensorflow\examples\tutorials\mnist 完成此操作后,input_data.read_data_sets("MNIST_data", one_hot=True) 工作。
    • 嘿,这对我有用,但我必须先更新熊猫。为此使用“sudo pip install pandas --upgrade
    • @user3731622,我偶尔也会遇到这个错误。一些谷歌搜索把我带到了其他一些关于这个问题的错误跟踪器。显然,托管该数据的网站会不时出现故障,并且不会自动尝试另一个镜像。
    【解决方案3】:

    如何开始教程

    我没有下载你下载的文件夹,但是我通过 pip 安装了 tensorflow,然后我遇到了类似的问题。

    我的解决方法是替换

    import tensorflow.examples.tutorials.mnist.input_data

    import tensorflow.examples.tutorials.mnist.input_data as input_data

    【讨论】:

      【解决方案4】:

      我正在使用不同的版本 - 在 Windows 上使用 Docker here 安装之后 - 并且遇到了类似的问题。

      我发现一个简单的解决方法是:

      1.进入Linux命令行,找出我的Docker镜像上的input_data.py在哪里(在你的例子中你提到你必须手动下载它。在我的例子中,它已经在这里了)。我使用了以下 linux 命令:

      $ sudo find . -print | grep -i '.*[.]py'
      

      我有文件和路径

      ./tensorflow/g3doc/tutorials/mnist/mnist.py
      ./tensorflow/g3doc/tutorials/mnist/input_data.py
      

      2.启动 Python 并使用 SYS 键入以下命令:

      >> import sys
      >> print(sys.path)
      

      你会得到现有的路径。

      ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat']
      

      4.添加inputa_data.py的路径:

      >> sys.path.insert(1,'/tensorflow/tensorflow/g3doc/tutorials/mnist')
      

      希望对您有所帮助。如果您找到更好的选择,请告诉我。 :)

      【讨论】:

      • 对我来说它是这样工作的:import tensorflow.examples.tutorials.mnist.input_data
      【解决方案5】:

      如果您使用的是 Tensorflow 2.0 或更高版本,则需要先安装 tensorflow_datasets:

      pip install tensorflow_datasets
      

      或者如果您使用的是 Anaconda 发行版:

      conda install tensorflow_datasets
      

      从命令行。

      如果您使用的是 Jupyter Notebook,则需要安装并启用 ipywidgets。根据使用 pip 的文档 (https://ipywidgets.readthedocs.io/en/stable/user_install.html):

      pip install ipywidgets
      jupyter nbextension enable --py widgetsnbextension
      

      如果您使用的是 Anaconda 发行版,请从命令行安装 ipywidgets,如下所示:

      conda install -c conda-forge ipywidgets
      

      使用 Anaconda 发行版,无需启用扩展,conda 会为您处理。

      然后导入你的代码:

      import tensorflow_datasets as tfds
      mnist = tfds.load(name='mnist')
      

      如果您遵循这些说明,您应该能够正确使用它。

      【讨论】:

        【解决方案6】:

        我可能有点晚了,但对于 tensorflow 版本 0.12.1,您可能想改用 input_data.read_data_sets。

        基本上使用这个函数来加载你从http://yann.lecun.com/exdb/mnist/下载的本地驱动器中的数据。

        from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('data_set/')

        【讨论】:

          【解决方案7】:

          对于 TensorFlow API 2.0,mnist 数据更改为:tf.keras.datasets.mnist.load_data

          【讨论】:

            【解决方案8】:

            现在有一种更简单的方法可以将 MNIST 数据加载到 tensorflow 中,而无需使用 Tensorflow 2 和 Tensorflow 数据集下载数据

            要开始使用,请确保导入 Tensorflow 并指定第二个版本:

            %tensorflow_version 2.x
            import tensorflow as tf
            

            然后使用以下代码将数据加载到字典中:

            MNIST_data = tfds.load(name = "mnist")
            

            然后将数据拆分为训练和测试:

            train, test = MNIST_data['train'] , MNIST_data['test']
            

            现在您可以随意使用这些数据生成器。

            【讨论】:

              【解决方案9】:
              cd your_mnist_dir &&\
              wget https://github.com/HIPS/hypergrad/raw/master/data/mnist/mnist_data.pkl &&\
              wget https://github.com/HIPS/hypergrad/raw/master/data/mnist/t10k-images-idx3-ubyte.gz &&\
              wget https://github.com/HIPS/hypergrad/raw/master/data/mnist/t10k-labels-idx1-ubyte.gz &&\
              wget https://github.com/HIPS/hypergrad/raw/master/data/mnist/train-images-idx3-ubyte.gz &&\
              wget https://github.com/HIPS/hypergrad/raw/master/data/mnist/train-labels-idx1-ubyte.gz
              

              【讨论】:

                【解决方案10】:

                MNIST input_data 是内置的,它不是一个单独的模块,它在 Tensorflow 模块中,试试

                from tensorflow.examples.tutorials.mnist import input_data
                

                【讨论】:

                  【解决方案11】:

                  MNIST 数据集包含在 tensorflow 示例教程中,如果我们想使用它:

                  导入 MNIST 数据以识别手写数字

                  from tensorflow.examples.tutorials.mnist import input_data
                  mnist = input_data.read_data_sets("MNIST data", one_hot=True)
                  

                  【讨论】:

                    【解决方案12】:

                    删除线:

                    from tensorflow.examples.tutorials.mnist import input_data
                    fashion_mnist = input_data.read_data_sets('input/data',one_hot=True)
                    

                    下面一行就足够了:

                    fashion_mnist = keras.datasets.fashion_mnist
                    

                    请注意,如果数据集在 keras 内置的示例中不可用,这将下载数据集并解决问题。 :)

                    【讨论】:

                      【解决方案13】:

                      如 TensorFlow 官网所示,所有 MNIST 数据都托管在 http://yann.lecun.com/exdb/mnist/

                      【讨论】:

                        【解决方案14】:

                        对于2.0以上的Tensorflow API,使用MNIST数据集可以使用以下命令,

                        import tensorflow_datasets as tfds
                        data = tfds.load(name = "mnist")
                        

                        【讨论】:

                          【解决方案15】:

                          以下步骤在我的笔记本中完美运行:

                          第 1 步:从 github 获取 Python 文件: !git clone https://github.com/tensorflow/tensorflow.git

                          第 2 步:将这些文件附加到我的 Python 路径中:

                          import sys

                          sys.path.append('/content/tensorflow/tensorflow/examples/tutorials/mnist')

                          第 3 步:使用 'input_data' 函数加载 MNIST 数据

                          import input_data

                          mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

                          就是这样!

                          【讨论】:

                            猜你喜欢
                            • 2018-09-27
                            • 2018-01-04
                            • 2017-07-15
                            • 2019-09-28
                            • 1970-01-01
                            • 2017-10-14
                            • 2017-10-29
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多