如何让tensorflow_datasets加载本地下载的数据集
tensorflow_datasets加載本地下載的數據集
最近,在學習transformer過程中調試ensorflow官方給的學習代碼中,需要利用tensorflow_datasets去下載葡萄牙語-英語的翻譯語料,代碼如下:
import tensorflow as tf import tensorflow_datasets as tfdsexamples, 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代碼了。
總結
以上是生活随笔為你收集整理的如何让tensorflow_datasets加载本地下载的数据集的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 漫游测试之性能测试(5.3-索引分析)
- 下一篇: 跨公司销售利润中心替代
