我正在尝试以下通用代码编码器示例:
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
的所有输入必须为张量;调用修剪后,第0个输入([“我的手机速度慢”,“我的手机不好”,“我需要更换手机。它无法正常工作”,“你的手机怎么样?”, “你几岁?”,“你几岁?”,“我10岁”,“今天在下雨”,“明天会晴天吗?”,“夏天在这里。”])不是张量。
答案 0 :(得分:0)
它表示您显然正在传递不是tensot的变量。您缺少的是句子_list应该通过tf.constant或tf.placeholder传递,这取决于您要如何使用它。
对于tf.constant使用: x = tf.constant(sentences_list)
并将x传递给embed.signatures ['default']
答案 1 :(得分:0)
由于tensorflow仅与Tensors一起使用,因此它不会接受python列表作为输入,并且正如错误还指出的那样,您需要将列表转换为Tensor然后再馈入它。
您可以做的是将列表定义为numpy数组,例如
np_list = np.asarray(sentence_list)
,然后使用
tensor_list = tf.convert_to_tensor(np_list)
。
在np.asarray和convert_to_tensor上了解有关它们的更多信息