我该怎么做?
sample_generator = get_sample_generator() # This generator yields tuples (label(i), data(i))
label_generator = ???
data_generator = ???
processed_data_generator = process_data_generator(data_generator)
processed_sample_generator = zip(label_generator, processed_data_generator) # Labels and corresponding data again as tupel (label(i), processed_data(i))
显然,我不能只是将 sample_generator 映射()到标签和数据生成器中,因为两者都会将 sample_generator 向前移动......
使用itertools.tee
一个发电机分成2。你仍然需要单独的进程分裂所产生的价值。
from itertools import count
def generator():
for c in count():
yield 'label {}'.format(c), 'data {}'.format(c)
from itertools import tee
label_generator, data_generator = tee(generator())
print("labels:")
for _ in range(5):
print(next(label_generator)[0])
print()
print("data:")
for _ in range(5):
print(next(data_generator)[1])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句