Я создаю приложение машинного обучения в Tensorflow 2.0.
Я пытаюсь оптимизировать вычислительную эффективность, ломая for-l oop (если выполняется условие) при переборе фактов внутри функции вызова, но он возвращает сообщение об ошибке:
OperatorNotAllowedInGraphError: использование tf.Tensor
в качестве Python bool
недопустимо: AutoGraph не преобразовал эту функцию. Попробуйте декорировать его напрямую с помощью u / tf.function.
(я также пытался добавить функцию tf методом вызова
Кто-нибудь знает, как разбить for-l oop внутри вызвать функцию в пользовательской модели тензорного потока и сделать лог c?
мой код
def call(self, inputs, questions):
episode = tf.zeros(shape=(self.batch_size, self.units))
memory = questions
facts = self.split(self.transpose(self.cast(inputs, tf.float32), perm?(1,0,2)), self.facts_len)
for _ in range(self.passes):
for c in facts:
c = tf.squeeze(c)
g = self.attention(c, memory, questions)
episode = (
g * self.rnn(tf.expand_dims(c,-1), memory)[1] + (1-g) * episode
)
# Generates next memory
_, memory = self.rnn(self.expand(episode, -1), memory)
return memory