tf.gather_nd,报错还是不报错?

本文探讨了一个关于TensorFlow 1.x中tf.gather_nd函数使用时遇到的奇怪现象:在PyCharm环境中因索引超出范围而报错,但在Bash环境中却能正常运行。通过API文档和进一步研究发现,这可能是由于执行环境(CPU vs GPU)的不同所导致。
部署运行你感兴趣的模型镜像

今天 让我遇到了一个非常气的问题,弄了几个小时,终于搞懂了。。。
问题描述:

import tensorflow as tf #tf.__version__ = 1.14
index = tf.constant([2,2])
tensor = tf.random.uniform(shape=[1,1])
output = tf.gather_nd(tensor, index)
with tf.Session() as sess:
	print(sess.run(output))

这一段类似的代码,在我pycharm上调试,报错如下:
在这里插入图片描述
随便一想就能明白,index的大小超出了tensor的范围。然而奇怪的事情发生了
在这里插入图片描述

我在我程序上发现了类似的错误,但是程序依然执行,比吃了一罐子泻药都顺畅。我尝试检查逻辑错误、sess的作用范围等。根本无过。
最后发现,使用bash执行上边的代码,竟然tmd不报错!
后来查了API,明晃晃的写着
在这里插入图片描述
初步推测可能是不知道某种原因,pycharm执行使用了cpu,但是bash启动执行了gpu。有待考证。。。
以后先看报错函数的文档吧。。。。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值