def test_update_dynamic_profiling_result(): model = ModelService.get_models_by_name('ResNet50')[0] dpr = DynamicProfileResultBO( 'gpu:01', 'Tesla K40c', 1, ProfileMemory(1000, 2000, 1000), ProfileLatency((1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)), ProfileThroughput((1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1))) # check update assert ModelService.update_dynamic_profiling_result(model.id, dpr) # check result model = ModelService.get_models_by_name('ResNet50')[0] assert model.profile_result.dynamic_results[0].memory.cpu_memory == 2000
def test_update_model(): model = ModelService.get_models_by_name('ResNet50')[0] model.acc = 0.9 model.weight.weight = bytes([123, 255]) # check if update success assert ModelService.update_model(model) model_ = ModelService.get_models_by_name('ResNet50')[0] # check updated model assert abs(model_.acc - 0.9) < 1e-6 assert model_.weight.weight == model.weight.weight
def retrieve_model_by_name(architecture_name: str = 'ResNet50', framework: Framework = None, engine: Engine = None): """Query a model by name, framework or engine. Arguments: architecture_name (str): Model architecture name. framework (Framework): Framework name, optional query key. Default to None. engine (Engine): Model optimization engine name. Returns: ModelBO: Model business object. """ # retrieve models = ModelService.get_models_by_name(architecture_name, framework=framework, engine=engine) # check if found if len(models) == 0: raise FileNotFoundError('Model not found!') # TODO: filter version model = models[0] get_remote_model_weight(model) return model
def test_register_dynamic_profiling_result(): model = ModelService.get_models_by_name('ResNet50')[0] dpr = DynamicProfileResultBO( 'gpu:01', 'Tesla K40c', 1, ProfileMemory(1000, 1000, 1000), ProfileLatency((1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)), ProfileThroughput((1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1))) assert ModelService.append_dynamic_profiling_result(model.id, dpr)
def test_get_model_by_name(): models = ModelService.get_models_by_name('ResNet50') # check length assert len(models) == 1 # check name for model in models: assert model.name == 'ResNet50'
def test_delete_dynamic_profiling_result(): model = ModelService.get_models_by_name('ResNet50')[0] dpr = DynamicProfileResultBO( 'gpu:02', 'Tesla K40c', 1, ProfileMemory(1000, 1000, 1000), ProfileLatency((1, 1, 2), (1, 1, 1), (1, 1, 1), (1, 1, 1)), ProfileThroughput((1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1))) ModelService.append_dynamic_profiling_result(model.id, dpr) # reload model = ModelService.get_models_by_name('ResNet50')[0] dpr_bo = model.profile_result.dynamic_results[0] dpr_bo2 = model.profile_result.dynamic_results[1] # check delete assert ModelService.delete_dynamic_profiling_result( model.id, dpr_bo.ip, dpr_bo.device_id) # check result model = ModelService.get_models_by_name('ResNet50')[0] assert len(model.profile_result.dynamic_results) == 1 dpr_left = model.profile_result.dynamic_results[0] assert dpr_bo2.latency.init_latency.avg == dpr_left.latency.init_latency.avg
def test_register_static_profiling_result(): model = ModelService.get_models_by_name('ResNet50')[0] spr = StaticProfileResultBO(5000, 200000, 200000, 10000, 10000, 10000) assert ModelService.register_static_profiling_result(model.id, spr)
def test_get_model_by_id(): model_bo = ModelService.get_models_by_name('ResNet50')[0] model = ModelService.get_model_by_id(model_bo.id) # check model id assert model.id == model_bo.id
def test_delete_model(): model = ModelService.get_models_by_name('ResNet50')[0] assert ModelService.delete_model_by_id(model.id)