【问题标题】:NotImplementedError: numpy() is only available when eager execution is enabledNotImplementedError: numpy() 仅在启用急切执行时可用
【发布时间】:2019-11-12 10:25:34
【问题描述】:

我在尝试保存模型时遇到了这些问题。另外我用的是Tensorflow 2.0.0和numpy 1.6.0,所以不知道怎么解决,因为在最新版本的tensorflow中,默认开启了eager execution。

Compilamos
Entrenamos
Train on 946 samples, validate on 237 samples
Epoch 1/2
946/946 [==============================] - 5s 5ms/step - loss: 0.6866 - accuracy: 0.5719 - val_loss: 0.6897 - val_accuracy: 0.5316
Epoch 2/2
946/946 [==============================] - 5s 5ms/step - loss: 0.6782 - accuracy: 0.5729 - val_loss: 0.6862 - val_accuracy: 0.5316
Entrenamiento finalizado
Traceback (most recent call last):

  File "<ipython-input-23-35267c139307>", line 1, in <module>
    runfile('C:/Users/Narcis Teodoroiu/Desktop/Version MASK R-CNN/TILErecognitionYcant.py', wdir='C:/Users/Narcis Teodoroiu/Desktop/Version MASK R-CNN')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Narcis Teodoroiu/Desktop/Version MASK R-CNN/TILErecognitionYcant.py", line 332, in <module>
    model.save('tile_cnn_model.h5')

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\network.py", line 1152, in save
    save_model(self, filepath, overwrite, include_optimizer)

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py", line 449, in save_wrapper
    save_function(obj, filepath, overwrite, *args, **kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py", line 541, in save_model
    _serialize_model(model, h5dict, include_optimizer)

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py", line 179, in _serialize_model
    'config': model.optimizer.get_config()

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\optimizers.py", line 557, in get_config
    config = {'learning_rate': float(K.get_value(self.learning_rate)),

  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py", line 2927, in get_value
    return x.numpy()

  File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\ops\resource_variable_ops.py", line 579, in numpy
    "numpy() is only available when eager execution is enabled.")

NotImplementedError: numpy() is only available when eager execution is enabled.

【问题讨论】:

  • 请添加一个工作示例。但根据我建议的错误代码,您在静态图中调用tf.Tensor().numpy()。尝试删除.numpy

标签: python numpy tensorflow


【解决方案1】:

当我尝试将我的项目从“tensorflow-gpu 1.12.0”迁移到“tensorflow-gpu 2.0.0”时,我遇到了同样的问题,当我启用 tensorflow v2 功能时,这个错误得到了解决(我在首先)。

如果您之前禁用了“tf_v2”功能,也许您可​​以尝试将其注释掉。

# tf.disable_v2_behavior()

https://www.tensorflow.org/guide/migrate

【讨论】:

    【解决方案2】:

    升级到 TensorFlow V2.0 时我遇到了同样的问题。 并通过注释掉解决了 #from keras import backend as K。 并使用 import tensorflow.keras.backend as K

    【讨论】:

      【解决方案3】:

      对我来说,这个问题是由 tensorflow_addons 模块引起的,因为它在 0.14 的某个地方使用了 sefl.numpy。要解决此问题,您必须将 tensorflow_addons 升级到 0.16.0 或更高版本。

      要安装tensorflow-addons 使用命令:

      pip install tensorflow-addons==0.16.1

      请记住,您需要python 3.7 及以上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        • 1970-01-01
        • 2020-11-20
        • 2019-03-17
        • 1970-01-01
        • 2021-08-09
        • 1970-01-01
        相关资源
        最近更新 更多