【问题标题】:AttributeError: module 'keras.backend' has no attribute '_BACKEND'AttributeError:模块“keras.backend”没有属性“_BACKEND”
【发布时间】:2020-03-08 16:59:45
【问题描述】:

我正在关注一本关于构建聊天机器人的书,并在尝试开始交互式学习时继续遇到此错误。

完整的错误是这样的:

Traceback(最近一次调用最后一次): 文件“train_initialize.py”,第 18 行,在 代理=代理(“horoscope_domain.yml”,策略= [MemoizationPolicy(),KerasPolicy()]) init 中的文件“C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py”,第 31 行 如果 KerasPolicy.is_using_tensorflow() 而不是图形: 文件“C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py”,第 48 行,在 is_using_tensorflow 返回 keras.backend._BACKEND == "张量流" AttributeError: 模块 'keras.backend' 没有属性 '_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)

'''

【问题讨论】:

    标签: python tensorflow keras rasa-nlu rasa


    【解决方案1】:

    看起来像过时的 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(最近一次调用最后一次):文件“train_initialize.py”,第 18 行,在 agent = Agent("horoscope_domain. yml”,策略 = [MemoizationPolicy(), KerasPolicy()]) 文件“C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\site-packages\rasa_core\policies\keras_policy.py”,行33、在init self.graph = keras.backend.tf.get_default_graph() AttributeError: module 'keras.backend' has no attribute 'tf' **
    • @Max_Meadowcroft 无论您使用的是什么“rasa”API,我都建议您使用其他东西——它似乎充满了错误。通知它的创建者这些问题 - 我怀疑他们会在这里停下来。最初提出的问题已解决 - 如果需要,您可以提出新问题。但由于错误的简单性,我无论如何都会回答:从错误跟踪中的代码行中完全删除 keras.backend. - 它应该只是 tf.get_default_graph()
    • @OverLordGoldDragon 你能看看这个问题吗? stackoverflow.com/q/58900947/5904928我挣扎了好几个小时,找不到答案。
    猜你喜欢
    • 2021-01-14
    • 2020-01-22
    • 2020-01-07
    • 1970-01-01
    • 2021-01-14
    • 2018-04-14
    • 2019-02-18
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多