tensowflow 2.5 Cannot convert a symbolic Tensor (strided_slice:0) to a numpy array

在Windows10环境下,使用Anaconda3和TensorFlow 2.5及Python 3.8时,训练模型遇到'Cannot convert a symbolic Tensor (strided_slice:0) to a numpy array'的错误。文章提到的解决方案包括降级numpy到1.95或Python到3.6,但作者认为这不是根本解决办法。最终,作者通过修改array_ops.py文件中特定部分的代码成功解决了问题,使得模型训练能够正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TF的环境:
Windows10
Anaconda3
Tensowflow 2.5
Python 3.8
用model_main_tf2.py训练模型,出现题目中这个错误,查找了一圈,有几个方法:
1.降低numpy的版本到1.95
2.降低Python的版本到3.6
有人说这两种方法都可以成功,可以试试。
但是我觉得这两种方法不是真正的解决问题,所以继续找答案。

找到这个方法:
找到array_ops.py,我的在
D:\ProgramData\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow\python\ops\array_ops.py
根据错误提示,可以找到这个文件位置。
在文件中,增加

from tensorflow.python.ops.math_ops import reduce_prod

然后找到
def _constant_if_small(value, shape, dtype, name)定义,
原代码是这样的:

def _constant_if_small(value
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值