【TensorFlow】关于cifar10数据集的使用(2020新版)

关于在《TensorFlow实战》这本书第5章中出现的cifar10,好多人都pip install cifar10发现失败:
no module named cifar10no modulw named cifar10_input,这是因为你需要下载一个tensorflow 的models,具体链接放在这里https://github.com/tensorflow/models/tree/r1.13.0,新的tensorflow由于变成2.x版了,所以没有models这个包,我这里用的是19年的branch。
下载完成后,将它解压缩并命名为models然后放到你安装tensorflow的那个目录下


紧接着要修改里边的文件
一共要修改两个地方:


删去那两行,用这两行代替
image.png


OK了你可以用了!



华丽的分割线(以上是2020年11月16日更新的,以下是2019年的)


之前看《TensorFlow实战》的时候就卡在了第五章“TensorFlow实现卷积神经网络”,原因是这里的cifar10数据集导入不进去。

cifar10.maybe_download_and_extract()

这里,如果你尝试的话会出现

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-12-02a754d7036a> in <module>()
----> 1 cifar10.maybe_download_and_extract()

AttributeError: module 'cifar10' has no attribute 'maybe_download_and_extract'

找不到 maybe_download_and_extract() 方法。。。什么鬼!

这可咋整,然后我还从官网上下载了cifar-10-batches-py,170多M,然后data_dir。。还是不行,后来彻底放弃了,这憨批TensorFlow。
时隔俩月,我今天又头铁,查了无数资料,没有提到 module 'cifar10' has no attribute 'maybe_download_and_extract'这种错误的???怎么说??网上冲浪的各位难道用的都是2016版TensorFlow-model???
那肯定是model更新了(https://github.com/tensorflow/models.git)models模块在这里有需要可以去下载。
一筹莫展之际,书上的下一行代码引起了我注意:

images_train, labels_train = cifar10_input.distorted_inputs(
                                                data_dir=data_dir, batch_size=batch_size)

OK,数据可以从这个线索去找,于是我打开models下的cifar10_input.py文件查找到distorted_inputs函数如下:

def distorted_inputs(batch_size):
  """Construct distorted input for CIFAR training using the Reader ops.

  Args:
    batch_size: Number of images per batch.

  Returns:
    images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
    labels: Labels. 1D tensor of [batch_size] size.
  """
  return _get_images_labels(batch_size, tfds.Split.TRAIN, distords=True)

OK,那我再去找_get_images_labels,也是cifar10_input.py中(奇怪为什么同一个功能要用两个函数):

def _get_images_labels(batch_size, split, distords=False):
  """Returns Dataset for given split."""
  dataset = tfds.load(name='cifar10', split=split)
  scope = 'data_augmentation' if distords else 'input'
  with tf.name_scope(scope):
    dataset = dataset.map(DataPreprocessor(distords), num_parallel_calls=10)
  # Dataset is small enough to be fully loaded on memory:
  dataset = dataset.prefetch(-1)
  dataset = dataset.repeat().batch(batch_size)
  iterator = dataset.make_one_shot_iterator()
  images_labels = iterator.get_next()
  images, labels = images_labels['input'], images_labels['target']
  tf.summary.image('images', images)
  return images, labels

可以看到datasets 是由tfds的load方法加载的
tfds,也就是import tensorflow_datasets as tfds
找到cifar10_download_and_extract.py这个文件,发现

DATA_URL = 'https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'

这是cifar的下载路径,然后我打开,发现500服务器拒绝访问,难怪下载不了

修改方案:DATA_URL = 'https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'改为
DATA_URL = 'http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'

去掉s再访问发现是可行的(当场摔电脑)
保存,运行

images_train, labels_train = cifar10_input.distorted_inputs(
                                                data_dir=data_dir, batch_size=batch_size)
下载.png

等下载完成后程序自动解压。此时在C:\Users\***\tensorflow_datasets文件夹下可以找到“cifar10”和“download”这两个文件夹。
OK完成,可以进行接下来的学习了。


2019年6月20日编辑
今天我尝试了一下,发现改成'https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'也能正常下载了,不知道为什么,昨天访问的时候是500服务器错误。
需要注意的一点是,无论有没有http(s),我们都需要搭VPN才能下载。毕竟你懂的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容