如何从tf张量得到Numpy数组?

2024-04-27 22:43:45 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图从tensorflow张量中获取numpy数组时,我遇到了一些问题。我使用了一个tensorflow集线器模块,但我不想在下游任务中使用tensorflow,而是需要一个numpy数组。在

我知道我必须在tensorflow会话中对张量调用“eval()”方法。但不幸的是我不能让它工作。。。:(它告诉我“表未初始化”。我试着加上sess.运行(tf.tables_初始值设定项()),但是我得到了错误:“NotFoundError:Resource localhost/module_1/embeddings_morph_specialized/class tensorflow::Var不存在”。我不知道下一步该怎么办。我也试过sess.运行但也没有成功。在

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数组。在

感谢任何帮助。:) 非常感谢。在


Tags: 模块方法importnumpytablestftensorflowas
1条回答
网友
1楼 · 发布于 2024-04-27 22:43:45

不幸的是,tf的hub模块是not yet supported in eager mode,除了tf2(它仍然是beta版本,我认为无论如何需要稍微不同的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."])

with tf.Session() as session:
  session.run([tf.global_variables_initializer(), tf.tables_initializer()])
  numpy_arr = session.run(X)

相关问题 更多 >