【问题标题】:NotImplementedError: Cannot convert a symbolic Tensor (lstm_2/strided_slice:0) to a numpy array. TNotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。吨
【发布时间】:2021-02-15 11:55:42
【问题描述】:

张量流版本 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 调用,这不是 支持

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

【问题讨论】:

    标签: python numpy tensorflow


    【解决方案1】:

    我解决了 numpy 降级到 1.18.5

    pip install -U numpy==1.18.5
    

    【讨论】:

    • 我只是在查看 1.20 发行说明。有许多低级更改(我并不完全理解),所以我对tensorflow 存在兼容性问题并不感到惊讶。我不知道谁必须解决什么问题。
    • 不知道等待更好的支持......我也很好奇为什么没有人发现类似的问题
    • 我也做了 :)
    • Numpy 1.19.5 版也解决了这些问题。
    • numpy 1.18.5python 3.9 不兼容,所以我必须先降级到python 3.8,然后再安装numpy 1.18.5。 (numpy==1.18.5 -> python[version='>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0'])
    【解决方案2】:

    如果您使用的是 anaconda:

    conda install numpy=1.19

    【讨论】:

      【解决方案3】:

      类似的问题,与

      • 张量流 2.3.0
      • numpy 1.20.3

      在 Windows 7 上。

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

        def __array__(self):
          raise NotImplementedError(
      

      在第 #845~846 行

        def __array__(self):
          raise TypeError(
      

      .

      【讨论】:

      【解决方案4】:

      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

      【讨论】:

      • 问题是由于其他包依赖,我不能折旧
      【解决方案5】:

      我遇到了同样的问题,通过将 python 从 3.8 降级到 3.6 解决了它

      【讨论】:

        【解决方案6】:

        我在使用 M1 芯片时遇到了这个问题。这是我修复的方法:

        conda create create --name tf
        conda activate tf
        conda install numpy ~=1.18.5
        pip install tensorflow-macos
        

        瞧,你准备好了!

        【讨论】:

          【解决方案7】:

          tensorflow 2.5.0numpy 1.21.2 也有同样的问题。有人建议herearray_ops.py 文件进行更改,但这对我不起作用。同一页面中的另一个答案与以下步骤有效。

          pip uninstall tensorflow
          pip install tensorflow
          pip uninstall numpy
          pip install numpy
          

          基本上,这些步骤不会降级 numpy,而是升级或保持在同一级别。以上步骤升级了tensorflow 2.7.0numpy 1.21.4,我的代码运行没有任何问题。

          【讨论】:

            【解决方案8】:

            tf 2.4.1、numpy 1.21 和 python 3.9 存在相同问题。

            使用

            将 numpy 降级到 1.19.2
            conda install numpy==1.19.2 
            

            解决了我的问题。

            【讨论】:

              猜你喜欢
              • 2022-01-12
              • 2022-10-05
              • 1970-01-01
              • 2021-05-15
              • 2021-09-23
              • 2020-02-17
              • 2020-06-11
              • 1970-01-01
              • 2021-10-17
              相关资源
              最近更新 更多