Я использую tensorflow 2.1 вместе с python 3.7
Следующий фрагмент кода используется для построения графика тензорного потока. Код работает без ошибок при выполнении как отдельного сценария python. (Возможно, тензорный поток работает в нетерпеливом режиме? Я не уверен.)
import tensorflow as tf
patches = tf.random.uniform(shape=(1, 10, 50, 300), dtype=tf.dtypes.float32)
s = tf.shape(patches)
patches = [patches[0][x][y] - tf.reduce_mean(patches[0][x][y]) for y in tf.range(s[2]) for x in tf.range(s[1])]
Однако код не работает, когда это часть графа тензорного потока. Я получаю следующую ошибку: tensorflow.
python .framework.errors_impl.OperatorNotAllowedInGraphError: повторение tf.Tensor
не разрешено: AutoGraph отключен в этой функции. Попробуйте украсить его напрямую с помощью @ tf.function.
Я также добавил декоратор @tf.function
к методу, который обертывает приведенные выше строки кода. Это не помогло. Я не уверен, что полностью понимаю значение украшения @tf.function
. Я также проверил, что это может быть проблемой при использовании понимания списка python внутри графа тензорного потока. Я не уверен, как использовать tf.map_fn или tf. while_l oop для моего случая, поскольку у меня есть вложенные циклы.
Заранее спасибо!