高速下载数据集的方式:
参考这篇
第一种情况:
(将封装好的下载数据集的代码改成读取本地文件)
在使用Pytorch的时候,有时候需要在线下载数据集,因为在下载的过程中,封装好的代码,还要进行其他的操作(例如数据类型转换numpy->tensor
),但是有时候因为下载网站在国外,进度条一直显示0%,或者下载速度缓慢。
就像这样:
解决方法
1.先下载需要用到的数据集至本地文件夹(不需要解压)。
2.将数据集的路径复制到浏览器并打开
3.再将浏览器上的路径复制到class CIFAR10(VisionDataset)
中的url中
注意:下面的filename也要修改成对应的文件名;将数据集路径直接复制到file:///后面也可以(要把“\”改成“/”)
然后就可以运行代码读取数据集了
第二种情况:
(直接写代码读取本地数据集)
解决方法:
1.下载数据集,并解压至本地文件夹。
2.使用Python3读取cifar-10中的数据。示例代码:
def load_file(filename):
# filename表示需要读取文件的路径
with open(filename,'rb') as fo:
data = pickle.load(fo,encoding='latin1') # bytes 官方的例程 latin1 读取数据
return data
提示:上面的方法需要自己编写程序进行读取。需要时刻注意文件的路径。
3.上面的方法需要自己编写程序进行数据的读取,编写过程比较麻烦,而且容易出错。下面介绍使用Keras库中的cifar10.load_data()函数进行数据读取,直接可以读取出训练集和测试集。这里需要你首先安装tensorflow库和Keras库。
(1)将刚才下载的压缩文件直接复制,放到Keras库的数据集文件夹下,一般情况下在"C:\Users\用户名.keras\datasets" 下,如果有特殊情况读者可以自行寻找,然后将压缩文件粘贴到datasets文件夹下即可。
(2)修改文件名。将文件名由:cifar-10-python.tar.gz 改为:cifar-10-batches-py.tar.gz点击保存即可。示例:
(3)修改好文件名之后,直接退出,使用Python代码直接读取数据。示例:
from keras.datasets import cifar10 # 读取数据集
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
提示:当上面程序运行时,会自动将压缩包进行解压操作,无需自己手动进行解压。
至此,当数据解压完成之后,就可以使用Keras库内置的函数进行读取数据了。