Как выбрать один из трех конвейеров ввода данных во время выполнения графика в Tensorflow? - PullRequest
0 голосов
/ 01 октября 2018

Я строю три конвейера ввода данных при построении графика.

images_pipe_1 = input_images('list1')
images_pipe_2 = input_images('list2')
images_pipe_3 = input_images('list3')

Я хочу выбрать один из них во время выполнения графа в соответствии с global_step, например:

if global_step < 2000:
  data input pipeline = images_pipe_1
if global_step >= 2000 and global_step < 5000
  data input pipeline = images_pipe_2
if global_step >= 5000
  data input pipeline = images_pipe_3

Но в тензорном потоке есть переменные типа global_step, которые являются тензорами, они должны управляться функциями tf, а не python.Я пытался использовать tf.cond, но он может решить только две проблемы.

images_pipe = tf.cond(tf.greater(global_step, tf.constant(2000, tf.int64)), lambda:images_pipe_2, lambda:images_pipe_1)

В этой ситуации есть три варианта.Я не знаю, как я могу решить это.Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 01 октября 2018

Я решаю это по tf.case

pipeline = tf.case({tf.greater(global_step, tf.constant(5000,tf.int64)):images-pipe_3, tf.less(global_step, tf.constant(2000,tf.int64):images_pipe_1)}, default=images_pipe_2, exclusive=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...