张量流版本2.3.1 numpy 版本 1.20
代码下方
# define model
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(n_steps, n_features)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
我们得到了
NotImplementedError:无法转换符号张量 (lstm_2/strided_slice:0) 到 numpy 数组。该错误可能表明 您正在尝试将张量传递给 NumPy 调用,这不是 支持
在我看来这是一个疯狂的错误!
我用 numpy 降级到 1.18.5 解决了
pip install -U numpy==1.18.5
如果您使用的是 anaconda:
conda install numpy=1.19
类似的问题,与
在 Windows 7 上。
通过修改
tensorflow/python/framework/ops.py
解决,替换
def __array__(self):
raise NotImplementedError(
在#845~846行与
def __array__(self):
raise TypeError(
.
Tensorflow 2.5 更新:
tensorflow 和 tensorflow-gpu 2.5 软件包仍然包含 numpy-1.19.5 作为依赖项。
如果tensorflow 2.5安装与numpy>1.19.5混合使用,将会重现本文中提到的错误
tensorflow-2.5、numpy-1.19.5 与 python-3.9 兼容
tf 2.4.1、numpy 1.21 和 python 3.9 也存在同样的问题。
使用
将 numpy 降级到 1.19.2conda install numpy==1.19.2
解决了我的问题。
我遇到了同样的问题,通过将 python 从 3.8 降级到 3.6 解决了它
我在使用 M1 芯片时遇到了这个问题。这是我修复的方法:
conda create create --name tf
conda activate tf
conda install numpy ~=1.18.5
pip install tensorflow-macos
瞧,你准备好了!
我对
tensorflow 2.5.0
和 numpy 1.21.2
也有同样的问题。有人建议here对array_ops.py
文件进行更改,但这对我不起作用。同一页面中的另一个答案通过以下步骤有效。
pip uninstall tensorflow
pip install tensorflow
pip uninstall numpy
pip install numpy
基本上这些步骤不会降级 numpy,而是升级或保持在同一水平。上述步骤升级了
tensorflow 2.7.0
和 numpy 1.21.4
,我的代码运行没有任何问题。
我正在使用 Tensorflow 2.2.0,我通过重新安装 numpy 解决了这个问题:
pip install -U numpy==1.18.5