关于本文
在相当有限的Internet环境中准备
由于附带的下载功能没有恢复功能就下载了将近150GB的数据,因此不太可能在我的环境中完成,因此我执行了本文所述的操作。
对于以下人员可能有用。
-
tfds.load('imagenet2012') 下载速度慢 - 下载途中多次失败
-
但是我想以某种方式使用
ImageNet 2012 数据集 -
然后我想用
TensorFlow Datasets 轻松阅读它
什么是TensorFlow数据集?
TensorFlow有一个方便的模块来读取称为TensorFlow Datasets的数据集。
这样,您可以非常轻松地加载存储库中准备的数据集。
加载MNIST
1 2 3 4 5 | import tensorflow_datasets as tfds datasets = tfds.load('mnist') for image, label in datasets['train']: # たったこれだけで読み込める pass |
我想加载ImageNet的故事
我不仅要使用
MNIST和CIFAR10,还要使用具有较大图像尺寸的数据集,因此该是时候在存储库中加载众所周知的
如上所述,您只需要编写一行即可读取,并且该行将自动下载,因此如果您等待,则应该可以使用它。 ......应该是。
下载不起作用
在我的生产线上,估计的剩余时间在20到100小时之间,这似乎很耗时,所以我决定耐心等待。
但是,由于断电,第一次下载被中断,由于某种原因,第二次下载停止在30%左右,第三次下载停止在10%左右,依此类推。
此外,由于
考虑到这一点,我觉得没有恢复功能而下载接近150GB的文件是相当鲁ck的,所以我决定手动执行下载部分,并设法使TensorFlow Datasets识别它。
执行环境
这是Windows 10的常规环境。
- Windows10专业版1809
- NVIDIA GeForce GTX 1060 6GB
- Python 3.7.4
- TensorFlow GPU 2.0.0 rc0
- TensorFlow数据集1.2.0
解决方案
过程是手动下载,修改脚本以加载数据集,设置数据集和还原脚本。
我认为操作过程不是很优雅,但是没关系,因为它不是用来恢复它的 del>。
手动下载数据集
首先,将
由于它基本上下载了将近150GB的数据,因此希望使用具有恢复功能的下载器。
我使用了" Academic Torrents --ImageNet 2012",这是一个促进研究人员共享数据集的网站。
了解如何自己使用种子。
下载的文件将保存在
资料下载
1 2 3 4 | Cドライブ | - Downloads | | - ILSVRC2012_img_train.tar | | - ILSVRC2012_img_val.tar |
修改脚本以加载
加载
请自行阅读Python的安装目标,并使用适当的编辑器将其打开。
当打开
文件时,应该有一个
此功能从下载文件中安装文件。
然后,通过如下更改此函数的开头,直接指定应下载的
更改之前-\\(Python安装目录)\\ Lib \\ site-packages \\ tensorflow_datasets \\ image \\ imagenet.py
1 2 3 4 5 6 7 | def _split_generators(self, dl_manager): train_path, val_path = dl_manager.download([ '%s/ILSVRC2012_img_train.tar' % _URL_PREFIX, '%s/ILSVRC2012_img_val.tar' % _URL_PREFIX, ]) if not tf.io.gfile.exists(train_path) or not tf.io.gfile.exists(val_path): ... |
更改之前-\\(Python安装目录)\\ Lib \\ site-packages \\ tensorflow_datasets \\ image \\ imagenet.py
1 2 3 4 5 6 7 8 9 10 | def _split_generators(self, dl_manager): # train_path, val_path = dl_manager.download([ # '%s/ILSVRC2012_img_train.tar' % _URL_PREFIX, # '%s/ILSVRC2012_img_val.tar' % _URL_PREFIX, # ]) # TODO: 元の代入をコメントアウトして手動ダウンロードしたファイルのパスを直接指定する train_path = 'C:\\Downloads\\ILSVRC2012_img_train.tar' val_path = 'C:\\Downloads\\ILSVRC2012_img_val.tar' if not tf.io.gfile.exists(train_path) or not tf.io.gfile.exists(val_path): ... |
进行更改后保存。
执行tfds.load('imagenet2012')
编写并执行脚本,该脚本将导入并加载到适当的文件中。
将目录用于所使用的数据集。
提取文件需要143GB(153,745,173,498B),因此请提前检查可用空间。
在这里是
main.py
1 2 | import tensorflow_datasets as tfds datasets = tfds.load('imagenet2012', data_dir='C:\\Datasets') |
跑
1 | $ python main.py |
运行
时,它应该跳过下载部分,并开始解压缩和安装文件。
撤消加载脚本
请先还原修改后的
完成
如果执行上述步骤,则数据集将处于与按常规步骤进行设置时相同的状态。
之后,只需照常阅读并与
感谢你的努力工作。
参考文献
TensorFlow数据集
github.com --tensorflow_datasets / image / imagenet.py
学术洪流
"学术洪流"在BitTorrent上共享超过27TB的研究数据集