如何让tensorflow_datasets加载本地下载的数据集

tensorflow_datasets加载本地下载的数据集

最近,在学习transformer过程中调试ensorflow官方给的学习代码中,需要利用tensorflow_datasets去下载葡萄牙语-英语的翻译语料,代码如下:

import tensorflow as tf
import tensorflow_datasets as tfds

examples, metadata = tfds.load('ted_hrlr_translate/pt_to_en', with_info=True, as_supervised=True)
train_examples, val_examples = examples['train'], examples['validation']

以上的代码中,load会自动去下载对应的数据集,但是这个下载过程奇慢无比,所以我就想能不能先下载好之后再本地加载即可,所以我在网上查找了几个方法,总结如下:

  • 方法一:利用环境变量设置本地代理
  • 方法二:参考一个博主写的方法

针对方法一,设置代码如下:

import os
import ssl
os.environ['http_proxy'] = 'http://127.0.0.1:1080'
os.environ['https_proxy'] = 'https://127.0.0.1:1080'
ssl._create_default_https_context = ssl._create_unverified_context

这里需要你本地有梯子才行,然后ssl为关闭安全验证操作,由于我本地梯子端口为1080所以以上端口就设置为1080。通过以上设置梯子之后,速度确实明显提升,但是极其不稳定,下载一会儿就会报错,然后会生成一个残次的压缩包,你再次运行的时候就会报下载不全的错误。

针对方法二:
参考链接:https://blog.csdn.net/weixin_43788143/article/details/107820641

以上链接倒是给了我启示,不过使用上面老哥的方法也会有错误,尝试过无数次还是无法加载本地数据,其原因在于每次运行一次代码的时候感觉 tensorflow datasets都会给文件加上一个序列号(估计是用来识别每一次的下载)。所以我结合方法一和方法二自己搞了方法,结果实验成功了,具体如下:

按照参考链接中的方法找到对应的tensorflow datasets中的文件路径中产生的文件如图所示:

文件图
以上文件即为执行load之后在对应的目录下生成的,downloads为下载目录,ted_hrlr_translate为将下载目录解析之后产生的文件夹。进入downloads之后,如下图:
在这里插入图片描述
在方法一种由于网络不稳定,会下载一个残次的压缩文件(大概只有30MB,全部最终的大小有124MB),再结合方法二中给的下载链接:https://github.com/neulab/word-embeddings-for-nmt,进入页面后下载链接如下:
在这里插入图片描述
下载之后得到的文件如下:
在这里插入图片描述
如果现在按照参考链接中老哥所说放到对应的downloads文件夹这样是无法加载的,还是会显示找不到该文件,此处我卡了很久,突然想到是不是我命名为之前用梯子下载的残次品的文件名一样就行,效果如下:
在这里插入图片描述
然后试过之后还是不行,再观察了一下extracted文件夹下的结构,如下:
在这里插入图片描述
再点开对应文件夹中:
在这里插入图片描述
在这里插入图片描述
发现残次品种是未能解压完的文件夹,所以我将之前下载的文件解压之后将里面的datasets文件夹复制到对应的文件夹中:
在这里插入图片描述
最后,再执行以上的代码,效果如下:
在这里插入图片描述
OK!成功加载成功,后续就可以利用该翻译数据运行对应的Tansformer代码了。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值