简体   繁体   中英

AttributeError: module 'keras.backend' has no attribute '_BACKEND'

I am following a book on building chat bots and continue running into this error when attempting to start interactive learning.

The full error is this:

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'

my code looks like this '''

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)

'''

Looks like outdated API code; open the files in the error trace, and replace ._BACKEND w/ .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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM