【问题标题】:Error while downloading MNIST data下载 MNIST 数据时出错
【发布时间】:2019-01-18 17:44:28
【问题描述】:

我正在尝试下载 MNIST 训练和测试集。我从网站下载文件并将其保存在名为 samples 的文件夹中。提取后我得到一个名为 train_images 的文件。但在函数调用中,我得到错误,名称 train 未定义。

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):

    if not os.path.exists(work_directory):
        os.mkdir(work_directory)
    filepath = os.path.join(work_directory, filename)
    if not os.path.exists(filepath):
        filepath, _ = urllib.urlretrieve(SOURCE_URL + filename, filepath)
        statinfo = os.stat(filepath)
        print('Succesfully downloaded', filename, statinfo.st_size, 'bytes.')
    print(filepath)
    return filepath
#function call
maybe_download(train-images,"./samples")`

【问题讨论】:

    标签: python python-3.x mnist


    【解决方案1】:

    检查您的函数调用。您使用的第一个参数 (train-images) 未在您的代码中定义。

    您的代码的测试版本:

    from __future__ import print_function
    import os
    from urllib import request
    
    SOURCE_URL = 'http://yann.lecun.com/exdb/mnist/'
    
    
    def maybe_download(filename, work_directory):
    
        if not os.path.exists(work_directory):
            os.mkdir(work_directory)
        filepath = os.path.join(work_directory, filename)
        if not os.path.exists(filepath):
            filepath, _ = request.urlretrieve(SOURCE_URL + filename, filepath)
            statinfo = os.stat(filepath)
            print('Succesfully downloaded', filename, statinfo.st_size, 'bytes.')
        print(filepath)
        return filepath
    
    #function call
    maybe_download("train-images-idx3-ubyte.gz","./samples")
    
    exit(0)
    
    1. 在您的情况下,python 尝试将 train-image 解释为变量 姓名。如果你想用它作为文件名,你应该用引号括起来。
    2. 请注意,如果您使用标签中指定的 python3,请在使用前修复 urlencode 导入。
    3. 您也可以使用浏览器查看http://yann.lecun.com/exdb/mnist/train-image。它返回 404,因为 train-image 不存在。但是有几个带有训练集的压缩档案。您可以通过浏览器查看正确的网址:http://yann.lecun.com/exdb/mnist

    您可以尝试使用一些 IDE(例如:pycharm)进行开发。它突出了一些提到的问题。

    【讨论】:

    • train image 是我从 MNIST 站点提取训练集后得到的文件名。我是新手。
    • @user10163680 如果您想使用 train-image 作为文件名,请尝试用引号括起来。否则 python 会尝试将其解析为变量名。
    • @user10163680 如果答案已经解决了您的问题,请接受 - 请参阅What should I do when someone answers my question?
    【解决方案2】:

    您在函数调用中写了train-images 而不是train_images。变量名不能包含破折号——train-images 被解析为train - images

    【讨论】:

    • 我又试了一次,但它不起作用。我想下载 MNIST 数据并阅读它。
    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多