Ejemplo n.º 1
0
def test_diagnostics(default_model_storage: ModelStorage,
                     default_execution_context: ExecutionContext):
    domain = Domain.from_yaml(DOMAIN_YAML)
    policy = TEDPolicy(
        TEDPolicy.get_default_config(),
        default_model_storage,
        Resource("TEDPolicy"),
        default_execution_context,
    )
    GREET_RULE = DialogueStateTracker.from_events(
        "greet rule",
        evts=[
            UserUttered(intent={"name": GREET_INTENT_NAME}),
            ActionExecuted(UTTER_GREET_ACTION),
            ActionExecuted(ACTION_LISTEN_NAME),
            UserUttered(intent={"name": GREET_INTENT_NAME}),
            ActionExecuted(ACTION_LISTEN_NAME),
        ],
    )
    precomputations = None
    policy.train([GREET_RULE], domain, precomputations)
    prediction = policy.predict_action_probabilities(
        GREET_RULE,
        domain,
        precomputations,
    )

    assert prediction.diagnostic_data
    assert "attention_weights" in prediction.diagnostic_data
    assert isinstance(prediction.diagnostic_data.get("attention_weights"),
                      np.ndarray)
Ejemplo n.º 2
0
async def test_train_keras_policy():
    default_domain = Domain.load(DEFAULT_DOMAIN_PATH_WITH_SLOTS)
    trackers = await training.load_data(DEFAULT_STORIES_FILE,
                                        default_domain,
                                        augmentation_factor=0,
                                        debug_plots=False)
    config = {"epochs": 100}
    policy = TEDPolicy(featurizer=featurizer(), priority=1, **config)
    policy.train(trackers, default_domain)
    policy.persist("{}/models/ted".format(prj_dir))
Ejemplo n.º 3
0
def test_diagnostics():
    domain = Domain.from_yaml(DOMAIN_YAML)
    policy = TEDPolicy()
    GREET_RULE = DialogueStateTracker.from_events(
        "greet rule",
        evts=[
            UserUttered(intent={"name": GREET_INTENT_NAME}),
            ActionExecuted(UTTER_GREET_ACTION),
            ActionExecuted(ACTION_LISTEN_NAME),
            UserUttered(intent={"name": GREET_INTENT_NAME}),
            ActionExecuted(ACTION_LISTEN_NAME),
        ],
    )
    policy.train([GREET_RULE], domain, RegexInterpreter())
    prediction = policy.predict_action_probabilities(GREET_RULE, domain,
                                                     RegexInterpreter())

    assert prediction.diagnostic_data
    assert "attention_weights" in prediction.diagnostic_data
    assert isinstance(prediction.diagnostic_data.get("attention_weights"),
                      np.ndarray)