NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。吨

ven*_*iac 12 python numpy tensorflow

张量流版本 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')
Run Code Online (Sandbox Code Playgroud)

我们有

NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。此错误可能表明您正在尝试将张量传递给 NumPy 调用,但不受支持

在我看来这是一个疯狂的错误!

ven*_*iac 27

我用 numpy 降级到 1.18.5 解决了

pip install -U numpy==1.18.5
Run Code Online (Sandbox Code Playgroud)

  • 我只是在看 1.20 发行说明。有许多低级别的变化(我没有完全理解),所以我对“tensorflow”存在兼容性问题并不感到惊讶。我不知道谁必须解决什么问题。 (4认同)
  • Numpy 版本 1.19.5 也解决了这些问题。 (4认同)
  • `numpy 1.18.5` 与 `python 3.9` 不兼容,所以我必须先降级到 `python 3.8`,然后再安装 `numpy 1.18.5`。(`numpy==1.18.5 -> python[版本='>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0']`) (3认同)
  • 我刚刚也这么做了:) (2认同)

小智 15

如果您使用的是 anaconda:

conda install numpy=1.19


小智 15

类似的问题,与

  • 张量流2.3.0
  • numpy 1.20.3

在 Windows 7 上。

tensorflow/python/framework/ops.py通过修改、替换解决

  def __array__(self):
    raise NotImplementedError(
Run Code Online (Sandbox Code Playgroud)

在#845~846行

  def __array__(self):
    raise TypeError(
Run Code Online (Sandbox Code Playgroud)


小智 5

张量流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 兼容