예제 #1
0
파일: __init__.py 프로젝트: todokku/DEEPaaS
def register_models(app):
    global MODELS
    global MODELS_LOADED

    if MODELS_LOADED:
        return

    try:
        for name, model in loading.get_available_models("v2").items():
            MODELS[name] = wrapper.ModelWrapper(name, model, app)
    except Exception as e:
        LOG.warning("Error loading models: %s", e)

    if MODELS:
        MODELS_LOADED = True
        return

    LOG.warning("No models found using V2 namespace, trying with V1. This is "
                "DEPRECATED and it is done only to try to preserve backards "
                "compatibility, but may lead to unexpected behaviour. You "
                "should move to the new namespace as soon as possible. Please "
                "refer to the documentation to get more details.")

    try:
        for name, model in loading.get_available_models("v1").items():
            MODELS[name] = wrapper.ModelWrapper(name, model, app)
    except Exception as e:
        LOG.warning("Error loading models: %s", e)

    if not MODELS:
        LOG.info("No models found with V2 or V1 namespace, loading test model")
        MODELS["deepaas-test"] = wrapper.ModelWrapper("deepaas-test",
                                                      test.TestModel(), app)
    MODELS_LOADED = True
예제 #2
0
def register_models(app):
    global MODELS
    global MODELS_LOADED

    if MODELS_LOADED:
        return

    try:
        for name, model in loading.get_available_models("v2").items():
            MODELS[name] = wrapper.ModelWrapper(name, model, app)
    except Exception as e:
        LOG.warning("Error loading models: %s", e)

    if MODELS:
        MODELS_LOADED = True
        return

    if not MODELS:
        LOG.info("No models found in V2, loading test model")
        MODELS["deepaas-test"] = wrapper.ModelWrapper(
            "deepaas-test",
            test.TestModel(),
            app
        )
    MODELS_LOADED = True
예제 #3
0
 async def test_dummy_model_with_wrapper(self, m_clean):
     w = v2_wrapper.ModelWrapper("foo", v2_test.TestModel(), self.app)
     task = w.predict()
     await task
     ret = task.result()['output']
     self.assertDictEqual(
         {
             'date': '2019-01-1',
             'labels': [{
                 'label': 'foo',
                 'probability': 1.0
             }]
         }, ret)
     task = w.train(sleep=0)
     await task
     ret = task.result()
     self.assertIsNone(ret['output'])
     meta = w.get_metadata()
     self.assertIn("description", meta)
     self.assertIn("id", meta)
     self.assertIn("name", meta)
     pargs = w.get_predict_args()
     targs = w.get_train_args()
     for arg, val in itertools.chain(pargs.items(), targs.items()):
         self.assertIsInstance(val, fields.Field)
예제 #4
0
 def test_dummy_model(self):
     m = v2_test.TestModel()
     self.assertDictEqual(
         {'date': '2019-01-1',
          'labels': [{'label': 'foo', 'probability': 1.0}]},
         m.predict()
     )
     self.assertIsNone(m.train())
     meta = m.get_metadata()
     self.assertIn("description", meta)
     self.assertIn("id", meta)
     self.assertIn("name", meta)
     self.assertEqual("Alvaro Lopez Garcia", meta["author"])
     pargs = m.get_predict_args()
     targs = m.get_train_args()
     for arg, val in itertools.chain(pargs.items(), targs.items()):
         self.assertIsInstance(val, fields.Field)