pytorh dataloader 迭代类型数据链式处理分析
2022/1/4 23:05:13
本文主要是介绍pytorh dataloader 迭代类型数据链式处理分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://github.com/wenet-e2e/wenet wenet官方代码,在最新的UIO模式中加入链式处理数据
import time import random class Process(): def __init__(self ,data ,f): self.data = data self.f = f def __iter__(self): return self.f(iter(self.data)) # data = [[j + str(i) for i in range(10)] for j in ['a','b', 'c'] ] data = ['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9','b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9','c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9'] def travel(d): for i in d: yield i def shuffle(d , sf_size=15): buf = [] for i in d: buf.append(i) if len(buf) >= sf_size: random.shuffle(buf) for j in buf: # print('shuffle',j) yield j buf = [] for k in buf : yield k def sort(d): buf = [] for i in d: buf.append(i) if len(buf) >= 5: for i in buf: # print('sort' , i ) yield i buf = [] for k in buf: yield k def batch(d): buf = [] for i in d: buf.append(i) if len(buf) >= 4: for i in buf: # print('batch' , i ) yield i buf = [] p = Process(data , travel) p = Process(p , shuffle) # p = Process(p , sort) p = Process(p , batch) for i in p: print(i , 'train')
这篇关于pytorh dataloader 迭代类型数据链式处理分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API