AttributeError:'Tensor'对象没有属性'numpy'

2025-03-05 09:16:00
admin
原创
94
摘要:问题描述:我从 GitHub 下载了此代码。predicted_id = tf.multinomial(tf.exp(predictions), num_samples=1)[0][0].numpy() 但我收到一条错误消息:AttributeError: 'Tensor' object has no att...

问题描述:

我从 GitHub 下载了此代码。

predicted_id = tf.multinomial(tf.exp(predictions), num_samples=1)[0][0].numpy()

但我收到一条错误消息:

AttributeError: 'Tensor' object has no attribute 'numpy'

哪里出了问题?我该如何修复?


解决方案 1:

由于接受的答案没有为我解决问题,所以我认为它可能对一些面临此问题并且已经拥有 tensorflow 版本 >= 2.2.0 和启用了 Eager Execution 的人有所帮助。

问题似乎是,对于安装期间的某些功能,装饰model.fit()
器出于性能原因@tf.function禁止执行这些功能tensor.numpy()

对我来说,解决方案是将标志传递run_eagerly=Truemodel.compile()如下内容:

model.compile(..., run_eagerly=True)

解决方案 2:

我怀疑您复制代码的地方已经启用了紧急执行tf.enable_eager_execution(),即在程序启动时调用了它。

你也可以这么做。

更新:请注意,TensorFlow 2.0 默认启用 Eager Execution。因此,上述答案仅适用于 TensorFlow 1.x

解决方案 3:

Tensorflow 2 有一个配置选项可以“立即”运行函数,这将允许通过.numpy()方法获取 Tensor 值。要启用立即执行,请使用以下命令:

tf.config.run_functions_eagerly(True)

请注意,这主要用于调试。

另请参阅:https://www.tensorflow.org/api_docs/python/tf/config/run_functions_eagerly

解决方案 4:

如果您的代码包装在 @tf.function 中或 Keras 层内,TF2.0 中也可能发生这种情况。这两者都以图形模式运行。由于 Eager 模式和图形模式之间的行为不同,并且人们不知道他们正在切换上下文,因此存在大量隐藏的代码,因此请小心!

解决方案 5:

这种情况发生在旧版本的 TF 中。因此请尝试pip install tensorflow --upgrade

否则运行

import tensorflow as tf
tf.enable_eager_execution()

如果您正在使用 Jupyter 笔记本,请重新启动内核。

解决方案 6:

您还可以使用它tf.get_static_value()来获取张量的值。这样做的好处是不需要急切模式。请参阅此处的文档。

解决方案 7:

tf.multinomial返回一个 Tensor 对象,该对象包含一个 2D 列表,其中包含形状为 的绘制样本[batch_size, num_samples]。调用.eval()该张量对象预计会返回一个 numpy ndarray。

像这样:

predicted_id = tf.multinomial(tf.exp(predictions), num_samples=1)[0][0].eval()

您还需要确保您有一个活动的会话(否则没有多大意义):

sess = tf.Session()
with sess.as_default():
    predicted_id = tf.multinomial(tf.exp(predictions), num_samples=1)[0][0].eval()

解决方案 8:

我在 tf.function() 中遇到了同样的问题:但对我有用的方法是通过 tf.convert_to_tensor Doku将 numpy 数组转换为 tensorflow 张量,然后继续使用 tensorflow。也许这个技巧对任何人都有用...

解决方案 9:

当我运行类似以下代码时,我看到了类似的错误,

tensor = tf.multiply(ndarray, 42)
tensor.numpy()  # throw AttributeError: 'Tensor' object has no attribute 'numpy'

我使用带有 tensorflow 1.14.0 的 anaconda 3。我使用以下命令升级了 tensorflow

conda update tensorflow

现在 tensorflow 是 2.0.0,问题已修复。尝试一下看看它是否能解决您的问题。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3998  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2749  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   85  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   96  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   83  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用