加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

keras.datasets.imdb无法download的问题的解决方案

(2019-01-27 23:11:29)
标签:

杂谈

it

分类: 深度学习
用keras中的数据集imdb进行简单文本分类时会出现imdb.npz数据集无法下载的情况,或者随后的imdb_word_index.json无法下载的情况,这是由于网络的问题,可能国内的防火墙有时对直接从这些数据库网站下载进行了屏蔽。
为了解决这一问题,可以先把这两个数据集下载下来,下载地址: 
链接:https://pan.baidu.com/s/1jcAZiGy0zeo9VjUKBDLZHA    
提取码:3aka 
在用imdb.load_data()和imdb.imdb.get_word_index()时添加绝对路径,例如, imdb.npz 和imdb_word_index.json在的绝对路径为E:\\ML\\TextClassification,那么可以分别用下面两个语句加载

(train_data, train_labels), (test_data, test_labels)=imdb.load_data(path="E:/ML/TextClassification/imdb.npz", num_words=10000)

word_index=imdb.get_word_index(path="E:/ML/TextClassification/imdb_word_index.json")

细读imdb这个module (https://github.com/tensorflow/tensorflow/blob/r1.12/tensorflow/python/keras/datasets/imdb.py)可以发现imdb的load_data与get_word_index都调用了get_file()这个函数来加载数据,而通过看get_file()这个函数的说明(https://www.tensorflow.org/api_docs/python/tf/keras/utils/get_file),

tf.keras.utils.get_file(
    fname,
    origin,
    untar=False,
    md5_hash=None,
    file_hash=None,
    cache_subdir='datasets',
    hash_algorithm='auto',
    extract=False,
    archive_format='auto',
    cache_dir=None
)

load_data 和 get_word_index中的path都对应着get_file中的fname,而origin对应着网络的下载的地址,load_data与get_word_index中都用的'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'这个地址。

默认情况下,origin地址中的数据都会下载到~/.keras/datasets/filename这个文件夹,这个是path路径默认的指定路径,其中~是home主目录,windows下一般是C:\\用户\\用户名\\, keras前面的'.'表keras这个文件夹是隐藏文件夹,所以要查看这个文件夹的话需要设置文件夹的隐藏可见,然后再找。如果path指定了绝对路径,例如我们上面所指定的E盘的路径,那么origin的数据会下载到path指定的绝对路径中。之所以先把数据集下载下来然后添加path的绝对路径有效,是因为当get_file发现path所指定的路径中已经有了数据集的话就不会再从origin的地址下载。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有