ValueError: Все входные данные для `ConcreteFunction`s должны быть Tensors - PullRequest
0 голосов
/ 17 октября 2019

Я пробую несколько примеров для Универсального кодировщика предложений с кодом ниже:

sentences_list = [
# phone related
'My phone is slow',
'My phone is not good',
'I need to change my phone. It does not work well',
'How is your phone?',

# age related
'What is your age?',
'How old are you?',
'I am 10 years old',

# weather related
'It is raining today',
'Would it be sunny tomorrow?',
'The summers are here.'

]

with tf.Session() as session:

    session.run([tf.global_variables_initializer(), 
    tf.tables_initializer()])
    sentences_embeddings = session.run(embed.signatures['default'] (sentences_list))

Но получите ошибку:

ValueError: Все входы в ConcreteFunction s должны быть тензорами;при вызове сокращенного 0-го входа ([«Мой телефон работает медленно», «Мой телефон не работает», «Мне нужно сменить телефон. Он плохо работает», «Как твой телефон?»,«Сколько вам лет?», «Сколько вам лет?», «Мне 10 лет», «Сегодня идет дождь», «Завтра будет солнечно?», «Лето здесь».])не тензор.

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Так как тензор потока работает только с Тензорами, поэтому он не будет принимать список питонов в качестве входных данных, и, как также говорит ошибка, вам нужно преобразовать список в Тензор и затем передать его.

Что вы можетесделать, это определить список как массив NumPy с чем-то вроде

np_list = np.asarray(sentence_list) и затем преобразовать его в тензор, используя

tensor_list = tf.convert_to_tensor(np_list).

Подробнее о них здесь, np.asarray и convert_to_tensor

0 голосов
/ 17 октября 2019

Это говорит о том, что вы передаете переменную, которая не является тензотом, очевидно. То, что вам не хватает, - это список_ предложений, который необходимо передать через tf.constant или tf.placeholder зависит от того, как вы хотите его использовать.

Для использования в tf.constant: x = tf.constant (предложений_list)

И передать x в embed.signatures ['default']

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