『AI 专属数据库的定制』的改进版本实现了更加方便的使用自己的专属数据集。
载入数据集
关于 DataBunch
见文末的脚本。
import sys
sys.path.append('E:/xinlib')
from base.filez import DataBunch
root = 'E:/Data/Zip/'
db = DataBunch(root)
db.keys()
dict_keys(['mnist', 'fashion_mnist', 'cifar10', 'cifar100'])
db.mnist.keys()
dict_keys(['url', 'namespace', 'trainX', 'trainY', 'testX', 'testY'])
db.fashion_mnist.keys()
dict_keys(['url', 'namespace', 'trainX', 'trainY', 'testX', 'testY'])
db.cifar10.keys()
dict_keys(['url', 'namespace', 'data_batch_4', 'test_batch', 'data_batch_3', 'meta', 'data_batch_2', 'data_batch_5', 'data_batch_1', 'trainX', 'trainY', 'testX', 'testY'])
db.cifar100.keys()
dict_keys(['url', 'namespace', 'train', 'test', 'meta', 'trainX', 'train_fine_labels', 'train_coarse_labels', 'testX', 'test_fine_labels', 'test_coarse_labels'])
将数据集写入 JSON
文件中
import pickle
序列化
def write_bunch(path):
with open(path, 'wb') as fp:
pickle.dump(db, fp)
path = f'{root}X.json' # 写入数据集的文件路径
write_bunch(path)
path = f'{root}X.dat' # 写入数据集的文件路径
write_bunch(path)
这样以后我们就可以直接 Copy f'{root}X.dat
或 f'{root}X.json'
到你可以放置的任何地方,然后你就可以通过 load
函数来调用 MNIST
、Fashion MNIST
、Cifa 10
、Cifar 100
这些数据集。即:
反序列化
def read_bunch(path):
with open(path, 'rb') as fp:
bunch = pickle.load(fp) # 即为上面的 DataBunch 的实例
return bunch
read_bunch(path) # path 即你的数据集所在的路径
以下是『AI 专属数据库的定制』的改进版本的完整脚本。
网友评论