Rasa: Getting Error on training : ValueError: dictionary update sequence element #0 has length 1; 2 is required

Created on 4 May 2018  路  5Comments  路  Source: RasaHQ/rasa

Rasa NLU version: 0.1.2

Operating system (windows, osx, ...): Windows 10

Content of model configuration file:

{
    "pipeline": "spacy_sklearn",
    "path":"./models/nlu",
    "data":"./data/data.json"
}

Training python file train_model.py:

from rasa_nlu.training_data import load_data
from rasa_nlu.config import RasaNLUModelConfig
from rasa_nlu.model import Trainer
from rasa_nlu.model import Metadata, Interpreter

def train_nlu(data, config, model_dir):
    training_data = load_data(data)
    trainer = Trainer(RasaNLUModelConfig(config))
    trainer.train(training_data)
    model_directory = trainer.persist(model_dir, fixed_model_name = 'myapps')


if __name__ == '__main__':
    train_nlu('data/data.json', 'config_spacy.json', './models/nlu')

Issue: Getting Below error . Unable to fix what

  File "nlu_model.py", line 17, in <module>
    train_nlu('data/data.json', 'config_spacy.json', './models/nlu')
  File "nlu_model.py", line 8, in train_nlu
    trainer = Trainer(RasaNLUModelConfig(config))
  File "C:\Users\stacy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\rasa_nlu\config.py", line 79, in __init__
    self.override(configuration_values)
  File "C:\Users\stacy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\rasa_nlu\config.py", line 160, in override
    self.__dict__.update(config)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
type

Most helpful comment

Resolved the issue:

interpreter = Interpreter.load('./models/nlu/default/myfirstbot')
Thanks for this awesome tutorial.
https://nlu.rasa.com/python.html

All 5 comments

I changed the code from that to this and it worked:

from rasa_nlu.training_data import load_data
from rasa_nlu.config import RasaNLUModelConfig
from rasa_nlu.model import Trainer
from rasa_nlu import config

training_data = load_data('./data/data.json')
trainer = Trainer(config.load('config_spacy.json'))
trainer.train(training_data)
model_directory = trainer.persist('./models/nlu' ,  fixed_model_name = 'myfirstbot')

But I am now stuck on the interprater:

interpreter = Interpreter.load("./models/nlu/default/myfirstbot", RasaNLUModelConfig("config_spacy.json"))

started getting the save error as above . If I change the model to RasaNLUConfig , it says module not found and if I use

config.load('config_spacy.json') 

instead of

RasaNLUModelConfig("config_spacy.json") , 

it gives me error as

Traceback (most recent call last):
  File "nlu_model.py", line 19, in <module>
    run_nlu()
  File "nlu_model.py", line 14, in run_nlu
    interpreter = Interpreter.load('./models/nlu/default/myfirstbot', config.load('config_spacy.json'))
  File "C:\Users\stacy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\rasa_nlu\model.py", line 276, in load
    skip_validation)
  File "C:\Users\stacy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\rasa_nlu\model.py", line 301, in create
    component = component_builder.load_component(
AttributeError: 'RasaNLUModelConfig' object has no attribute 'load_component'

Resolved the issue:

interpreter = Interpreter.load('./models/nlu/default/myfirstbot')
Thanks for this awesome tutorial.
https://nlu.rasa.com/python.html

When i run nlu_model.py it show this error

$ python nlu_model.py
Traceback (most recent call last):
File "nlu_model.py", line 7, in
trainer = Trainer(config.load('config_spacy.json'))
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\rasa_nlu\config.py", line 51, in load
return RasaNLUModelConfig(file_config)
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\rasa_nlu\config.py", line 106, in __init__
from rasa_nlu import registry
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\rasa_nlu\registry.py", line 23, in
from rasa_nlu.classifiers.embedding_intent_classifier import \
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\rasa_nlu\classifiers\embedding_intent_classifier.py", line 33, in
import tensorflow as tf
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow__init__.py", line 24, in
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python__init__.py", line 63, in
from tensorflow.python.framework.framework_lib import * # pylint: disable=redefined-builtin
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\framework\framework_lib.py", line 104, in
from tensorflow.python.framework.importer import import_graph_def
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\framework\importer.py", line 32, in
from tensorflow.python.framework import function
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\framework\function.py", line 36, in
from tensorflow.python.ops import resource_variable_ops
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py", line 35, in
from tensorflow.python.ops import variables
File "C:\Users\Bani Naveen\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\ops\variables.py", line 40, in
class Variable(checkpointable.CheckpointableBase):
AttributeError: module 'tensorflow.python.training.checkpointable' has no attribute 'CheckpointableBase'

As @stacybot123 used the following code, I tried using it.


from rasa_nlu.training_data import load_data
from rasa_nlu.config import RasaNLUModelConfig
from rasa_nlu.model import Trainer
from rasa_nlu import config

training_data = load_data('./data/data.json')
trainer = Trainer(config.load('config_spacy.json'))
trainer.train(training_data)
model_directory = trainer.persist('./models/nlu' , fixed_model_name = 'myfirstbot')
interpreter = Interpreter.load('./models/nlu/default/myfirstbot')


I am getting this error


Traceback (most recent call last):
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\rasa_nlu\utils__init__.py", line 264, in read_yaml
return yaml_parser.load(content)
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\ruamel\yaml\main.py", line 266, in load
return constructor.get_single_data()
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\ruamel\yaml\constructor.py", line 102, in get_single_data
node = self.composer.get_single_node()
File "_ruamel_yaml.pyx", line 706, in _ruamel_yaml.CParser.get_single_node (ext/_ruamel_yaml.c:9612)
File "_ruamel_yaml.pyx", line 724, in _ruamel_yaml.CParser._compose_document (ext/_ruamel_yaml.c:9922)
File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node (ext/_ruamel_yaml.c:10814)
File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node (ext/_ruamel_yaml.c:12609)
File "_ruamel_yaml.pyx", line 731, in _ruamel_yaml.CParser._compose_node (ext/_ruamel_yaml.c:10027)
File "_ruamel_yaml.pyx", line 904, in _ruamel_yaml.CParser._parse_next_event (ext/_ruamel_yaml.c:12818)
ruamel.yaml.scanner.ScannerError: while scanning a quoted scalar
in "", line 4, column 12
found unexpected end of stream
in "", line 6, column 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "nlu_model.py", line 7, in
trainer = Trainer(config.load('config_spacy.json'))
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\rasa_nlu\config.py", line 44, in load
file_config = utils.read_yaml_file(filename)
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\rasa_nlu\utils__init__.py", line 283, in read_yaml_file
return read_yaml(read_file(filename, "utf-8"))
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\rasa_nlu\utils__init__.py", line 274, in read_yaml
return yaml_parser.load(content)
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\ruamel\yaml\main.py", line 266, in load
return constructor.get_single_data()
File "C:\Users\kastu\AppData\Roaming\Python\Python36\site-packages\ruamel\yaml\constructor.py", line 102, in get_single_data
node = self.composer.get_single_node()
File "_ruamel_yaml.pyx", line 706, in _ruamel_yaml.CParser.get_single_node (ext/_ruamel_yaml.c:9612)
File "_ruamel_yaml.pyx", line 724, in _ruamel_yaml.CParser._compose_document (ext/_ruamel_yaml.c:9922)
File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node (ext/_ruamel_yaml.c:10814)
File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node (ext/_ruamel_yaml.c:12609)
File "_ruamel_yaml.pyx", line 731, in _ruamel_yaml.CParser._compose_node (ext/_ruamel_yaml.c:10027)
File "_ruamel_yaml.pyx", line 904, in _ruamel_yaml.CParser._parse_next_event (ext/_ruamel_yaml.c:12818)
ruamel.yaml.scanner.ScannerError: while scanning a quoted scalar
in "", line 4, column 12
found unexpected end of stream
in "", line 6, column 1

Please help me with this error.

Please create a new issue

Was this page helpful?
0 / 5 - 0 ratings