如何解决Colab中无法下载IAM手写数据集tgz文件的问题
IAM手写数据集Colab下载失败问题解决办法
问题原因
IAM手写数据集站点设置了使用许可校验,未手动同意许可协议的前提下直接请求下载链接,服务端会返回许可协议HTML页面而非目标tgz压缩包,这就是你之前用wget、tf.keras.utils.get_file下载到错误内容的核心原因。
解决方案
方案1:挂载谷歌云盘中转(最稳定)
- 本地浏览器打开数据集下载页,勾选同意使用条款后,手动下载需要的所有tgz文件到本地
- 将下载好的tgz文件上传到个人谷歌云盘指定目录
- 在Colab中运行以下代码挂载云盘:
from google.colab import drive drive.mount('/content/drive')
- 挂载完成后直接解压对应路径的压缩包即可,示例命令:
!tar zxvf /content/drive/MyDrive/你存放文件的路径/xxx.tgz -C /content/目标解压路径
方案2:携带Cookie发起下载请求
如果不想手动上传文件,可以通过携带浏览器验证后的Cookie直接在Colab下载:
- 本地浏览器打开数据集下载页,勾选同意使用条款
- 按
F12打开开发者工具,切换到「网络」标签,点击你需要下载的tgz文件链接 - 在网络请求列表中找到对应tgz的请求记录,复制请求头中的
Cookie字段值,以及完整的文件下载直链 - 在Colab中运行带请求头的wget命令,示例:
!wget --header="Cookie: 你复制的Cookie内容" "你复制的下载直链" -O 自定义保存文件名.tgz
注意:Cookie存在有效时长,通常为几小时到数天,过期后需要重新到浏览器获取新的Cookie值
方案3:使用公开镜像资源
你也可以通过公开的数据集镜像站点下载对应tgz文件,下载完成后建议校验文件哈希值,避免获取到被篡改的内容。
内容的提问来源于stack exchange,提问作者just_another_beginner
相关产品推荐
相关产品推荐

