当尝试从张量流张量获取一个numpy数组时遇到问题。我使用了一个tensorflow集线器模块,但是我不想在下游任务中使用tensorflow,而是需要一个numpy数组。
我知道我必须在张量流会话中在张量上调用'eval()'方法。但不幸的是,我无法使它正常工作... :(它告诉我“表未初始化”。我试图添加'sess.run(tf.tables_initializer())',但随后出现错误:'NotFoundError :资源localhost / module_1 / embeddings_morph_specialized / class tensorflow :: Var不存在'。我不确定接下来要尝试什么。我也尝试过'sess.run()',但也没有成功。
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
embed = hub.Module("https://public.ukp.informatik.tu-darmstadt.de/arxiv2018-xling-sentence-embeddings/tf-hub/monolingual/1")
X = embed(["This is a test."])
# I tried:
#with tf.Session() as sess:
# sess.run(tf.tables_initializer())
# X.eval()
'X'是我想转换为numpy数组的张量。
感谢您的帮助。 :) 谢谢。
答案 0 :(得分:1)
不幸的是,tf_hub模块是not yet supported in eager mode,除了tf 2(仍处于beta版,我认为仍然需要稍微不同的集线器模块)。
因此,您需要在会话中运行它。
类似的东西:
embed = hub.Module("https://public.ukp.informatik.tu-darmstadt.de/arxiv2018-xling-sentence-embeddings/tf-hub/monolingual/1")
X = embed(["This is a test."])
with tf.Session() as session:
session.run([tf.global_variables_initializer(), tf.tables_initializer()])
numpy_arr = session.run(X)