Triplet Network 数据处理:读取训练集并保存样本
读取训练集数据
single_loader, dataset_size = triplet_network.data_loader(os.path.join(DATA_DIR, 'triplets_train'), load_fn=load_audio_mfcc, batch_size=1)
使用 triplet_network.data_loader 读取训练集数据,并设定 batch_size 为 1
计算数据集大小并得到其位数
i_len = len(str(dataset_size - 1))
获取数据集大小,并计算其位数,用于生成文件名
创建一个文件,用于保存数据列表
with open(os.path.join(TMP_DIR, 'list'), 'w') as f_list:
创建一个名为 'list' 的文件,用于保存每个样本的路径
对每个三元组数据进行处理
for i, (triplet, _) in tqdm(enumerate(single_loader()), total=dataset_size):
使用 tqdm 显示进度条,对每个三元组数据进行处理
paths = []
创建一个列表,用于保存每个样本的路径
对每个样本(锚点、正样本、负样本)进行处理
for name in ['anchor', 'positive', 'negative']:
遍历每个样本类型
[example] = triplet[name + '_input']
获取样本数据
生成保存数据的文件名,并保存数据
path = '{}_{}.npy'.format(str(i).zfill(i_len), name)
生成文件名,并使用 np.save 保存样本数据
np.save(os.path.join(TMP_DIR, path), example, allow_pickle=False)
保存样本数据到指定路径,并禁用 pickle
paths.append(path)
将样本路径添加到列表中
将每个样本的保存路径写入文件
print(*paths, sep=' ', file=f_list)
将每个样本的路径写入文件,使用制表符分隔
原文地址: https://www.cveoy.top/t/topic/przk 著作权归作者所有。请勿转载和采集!