首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Tensorflow-Hub模块中提取numpy数组(张量到numpy转换)

从Tensorflow-Hub模块中提取numpy数组(张量到numpy转换)
EN

Stack Overflow用户
提问于 2019-12-16 20:35:50
回答 2查看 340关注 0票数 1

我试着开始使用Tensorflow-Hub从图像中提取特征向量。但是,我不确定如何将Tensorflow-Hub输出(张量)转换为numpy向量。下面是一个简单的例子:

代码语言:javascript
运行
复制
from keras.preprocessing.image import load_img
import tensorflow_hub as hub
import tensorflow as tf
import numpy as np

im = load_img('sample.png')
im = np.expand_dims(im.resize((299,299)), 0)

module = hub.Module("https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1")
out = module(im)

o = np.add(out, 0)
type(o)

文档表示"NumPy操作自动将张量转换为NumPy ndarray“,但上面的np.add()调用返回对象类型tensorflow.python.framework.ops.Tensor。有人知道我如何从out中获得一个numpy数组吗?任何指点都将不胜感激!

版本

代码语言:javascript
运行
复制
# output from `pip freeze | grep tensorflow`
tensorflow==1.14.0
tensorflow-estimator==1.14.0
tensorflow-hub==0.1.1
tensorflow-probability==0.6.0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-16 22:34:18

下列各点应能发挥作用。但我没有检查输出是否有意义。但是它在多次运行中返回一致的结果。

代码语言:javascript
运行
复制
im = load_img('sample.png')
im = np.expand_dims(im.resize((299,299)), 0)

module = hub.Module("https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1")

out = module(im)

with tf.Session() as sess:
  tf.global_variables_initializer().run()
  o = sess.run(out)
  o = np.add(o, 0)
  print(type(o))
票数 2
EN

Stack Overflow用户

发布于 2021-03-05 02:37:23

您可以使用

代码语言:javascript
运行
复制
out.numpy()

type(out)  
# <class 'tensorflow.python.framework.ops.EagerTensor'>

type(out.numpy()
# <class 'numpy.ndarray'>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59363950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档