在Google Colab下载CIFAR10后本地未找到,询问存储位置
解答你的CIFAR10存储位置问题
首先明确说:你在Colab里运行这段代码后,数据集绝对不会出现在你本地电脑的Downloads文件夹里——它存储在Google Colab为你的会话分配的临时云端虚拟机中。
为什么会这样?
Colab是基于云端的运行环境,你在Colab里写的所有文件路径,都是相对于这个云端虚拟机的文件系统,和你本地电脑的文件系统完全独立。你代码里写的root='./Users/Sohrab/Downloads',其实是在Colab的虚拟机里创建了这个路径,并把CIFAR10数据集下载到那里,和你本地的Users/Sohrab/Downloads没有任何关系。
而且这个虚拟机是临时的:当你关闭Colab标签页、会话超时(一般闲置12小时左右),这个虚拟机就会被销毁,里面的所有文件(包括下载的数据集)都会被清空。
怎么把数据集拿到本地?
有两种常用方法:
方法1:直接从Colab虚拟机下载到本地
你可以借助Colab的files模块,把虚拟机里的数据集文件下载到本地电脑。修改后的代码示例:
import torch import torchvision import torchvision.transforms as transforms from google.colab import files transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) # 先把数据集下载到Colab虚拟机的/content/cifar10路径下 trainset = torchvision.datasets.CIFAR10(root='/content/cifar10', train=True, download=True, transform=transform) # 找到数据集的压缩包路径,下载到本地 files.download('/content/cifar10/cifar-10-batches-py/cifar-10-python.tar.gz')
运行这段代码后,浏览器会自动触发下载,把CIFAR10的压缩包保存到你本地的默认下载文件夹。
方法2:先存到Google Drive再下载到本地
如果你不想每次用都重新下载,可以先把Google Drive挂载到Colab的虚拟机,把数据集存到Drive里,之后再从Drive下载到本地:
from google.colab import drive import torch import torchvision import torchvision.transforms as transforms # 挂载你的Google Drive,会弹出授权窗口,按提示操作即可 drive.mount('/content/drive') transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) # 把数据集下载到Drive的指定路径 trainset = torchvision.datasets.CIFAR10(root='/content/drive/MyDrive/Downloads', train=True, download=True, transform=transform)
之后你可以打开自己的Google Drive,找到MyDrive/Downloads里的CIFAR10文件,手动下载到本地电脑。
内容的提问来源于stack exchange,提问作者sosamm
相关产品推荐
相关产品推荐

