属性错误:模块'keras.backend'没有属性'_BACKEND'。

3

我正在学习一本聊天机器人构建指南,但在尝试开始交互式学习时遇到了这个错误。

完整的错误信息如下:

Traceback (most recent call last): File "train_initialize.py", line 18, in agent = Agent("horoscope_domain.yml", policies=[MemoizationPolicy(), KerasPolicy()]) File "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py", line 31, in __init__ if KerasPolicy.is_using_tensorflow() and not graph: File "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py", line 48, in is_using_tensorflow return keras.backend._BACKEND == "tensorflow" AttributeError: module 'keras.backend' has no attribute '_BACKEND'

我的代码如下:

'''

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from rasa_core import utils
import tensorflow.keras.backend
from rasa_core.agent import Agent
from rasa_core.policies.keras_policy import KerasPolicy
from rasa_core.policies.memoization import MemoizationPolicy
from rasa_core.policies.sklearn_policy import SklearnPolicy

if __name__ == '__main__':
    utils.configure_colored_logging(loglevel="DEBUG")

    training_data_file = './data/stories.md'
    model_path = './models/dialogue'
    agent = Agent("horoscope_domain.yml", policies = [MemoizationPolicy(), KerasPolicy()])

    training_data = agent.load_data(training_data_file)

    agent.train(training_data, augmentation_factor = 50, epochs = 500, batch_size = 10, validation_split = 0.2)
    agent.persist(model_path)

'''

1个回答

0

看起来是过时的 API 代码;在错误跟踪中打开文件,并将 ._BACKEND 替换为 .backend()

# In "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages
# \rasa_core\policies\keras_policy.py", line 48:

# return keras.backend._BACKEND == "tensorflow" # <-- DELETE
return keras.backend.backend() == "tensorflow"  # <-- PASTE

成功了,但是现在我遇到了这个错误 ** Traceback (most recent call last): File "train_initialize.py", line 18, in <module> agent = Agent("horoscope_domain.yml", policies = [MemoizationPolicy(), KerasPolicy()]) File "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py", line 33, in init self.graph = keras.backend.tf.get_default_graph() AttributeError: module 'keras.backend' has no attribute 'tf' ** - Max_Meadowcroft
@Max_Meadowcroft,无论你正在使用的“rasa” API是什么,我建议你使用其他东西——它似乎充满了错误。通知其创建者这些问题,我怀疑他们不会止步于此。原始提问的问题已经解决——如果需要,您可以提出新问题。但由于错误很简单,我将回答:从错误跟踪中的代码行中完全删除keras.backend.,应该只剩下tf.get_default_graph() - OverLordGoldDragon
@OverLordGoldDragon,你能否看一下这个问题吗? https://dev59.com/Zbfna4cB1Zd3GeqPuoub 我已经苦苦挣扎了几个小时,但仍然找不到答案。 - Aaditya Ura

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接