В производственной среде у меня есть данные, поступающие от N производителей, которые должны пройти через сеть. Я нашел этот комментарий к распараллеливанию tf.data.Dataset.from_generator, который действительно описывает что я хочу.
def generator(n):
# returns n-th generator function
def dataset(n):
return tf.data.Dataset.from_generator(generator(n))
ds = tf.data.Dataset.range(N).apply(tf.contrib.data.parallel_interleave(dataset, cycle_lenght=N))
# where N is the number of generators you use
Однако как должна выглядеть функция генератора (n). Потому что, когда я запускаю этот пример с
def generator(n):
"""Returns the n-th generator function (for consumer n)
"""
consumer = self.consumers[n]
def gen():
for item in consumer:
yield item
return gen
с self.consumers списком Python я получу ошибку:
TypeError: индексы списка должны быть целыми числами или срезами, а не тензором
n
? Судя по коду, который вы разместили, это похоже наtf.Tensor
, который нельзя использовать для индексации в списке. - person xdurch0   schedule 11.05.2018