Ошибка типа: len не определено для символов c Тензор. в выполнении тензорного графа - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь выполнить приведенную ниже eval_fn функцию в графическом режиме,

@tf.function
def eval_fn(model, valid_data, batch_size, alphabet):
    steps = len(valid_data) // batch_size

    for step in range(steps):
        batch_data = next(valid_data.next_batch())
        batch_x = batch_data['inputs']
        gt_text = batch_data['gt_text']   
        output = model(batch_x)
        output = tf.nn.log_softmax(output)

        for idx in range(output.shape[0]):
            pred = output[idx]
            output_text = ''
            for timestep in pred:
                label = tf.math.argmax(timestep)
                output_text += alphabet[label]
            print(f"Predicted text: {output_text}")
            print(f"Original text : {gt_text[idx]}")

Но я получил следующую ошибку

TypeError: len is not well defined for symbolic Tensors. (transpose:0) Please call `x.shape` rather than `len(x)` for shape information.

Когда я запускаю эту же функцию без декоратора @tf.function работает без ошибок. Что может быть причиной. Я использую

>>> tf.__version__
'2.1.0'
>>>

Я проверяю решение , но оно не работает со мной

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...