|
from uuid import uuid1 |
|
|
|
import pytest |
|
|
|
from aidisdk import AIDIClient |
|
from aidisdk.algo_house.algorithm_module import AlgoConfig, AlgoFieldEnum |
|
from aidisdk.compute.job_abstract import ( |
|
JobType, |
|
RunningResourceConfig, |
|
StartUpConfig, |
|
) |
|
from aidisdk.compute.package_abstract import ( |
|
CodePackageConfig, |
|
LocalPackageItem, |
|
) |
|
from aidisdk.model import ModelFramework |
|
|
|
|
|
@pytest.mark.skip("unused") |
|
def test_create_algo_for_eval_detection3d(unittest_client): |
|
client: AIDIClient = unittest_client |
|
|
|
|
|
algorithm = client.algo_house.create( |
|
algo_name="eval_for_detection3d_" + str(uuid1()).replace("-", "_"), |
|
field=AlgoFieldEnum.AUTO, |
|
scene="高速", |
|
module="感知", |
|
task_types=["2D检测"], |
|
framework=ModelFramework.pytorch, |
|
startup="cd ${WORKING_PATH} && python3 local_example.py ", |
|
code_package="test/test_data/eval_experiment", |
|
docker_image="docker.hobot.cc/auto/eval-traincli:v1.0.36test", |
|
desc="算法仓库发起评测使用,请勿删除.", |
|
tags=["test", "unittest"], |
|
config_files=[ |
|
AlgoConfig( |
|
name="eval_setting", |
|
local_path="test/test_data/" |
|
+ "eval_experiment/setting_example.yaml", |
|
), |
|
], |
|
) |
|
client.algo_house.__delete__(algorithm.algo_id) |
|
|
|
|
|
@pytest.mark.skip("unused") |
|
def test_update_algo(unittest_client): |
|
client: AIDIClient = unittest_client |
|
algo_name = "eval_for_Semantic_Segmentation" |
|
algorithm = client.algo_house.update( |
|
algo_name=algo_name, |
|
field=AlgoFieldEnum.AUTO, |
|
scene="高速", |
|
module="感知", |
|
task_types=["2D检测"], |
|
framework=ModelFramework.pytorch, |
|
startup="python3 local_example.py --task_type ${TASK_TYPE} " |
|
+ "--endpoint" |
|
+ " 'http://aidi-test.hobot.cc' " |
|
+ "--group_name ${GROUP_NAME} " |
|
+ "--experiment_name ${EXPERIMENT_NAME} --run_name '${RUN_NAME}' " |
|
+ "--gt_dataset_id " |
|
+ "'${GT_DATASET_ID}' " |
|
+ "--images_dataset_id " |
|
+ "'${IMAGES_DATASET_ID}' " |
|
+ "--prediction_name '${PREDICTION_NAME}' " |
|
+ "--predictions_dataset_id '${PREDICTIONS_DATASET_ID}' " |
|
+ "--labels_dataset_id '${LABELS_DATASET_ID}' " |
|
+ "--setting_file_name ${EVAL_SETTING}", |
|
|
|
|
|
code_package="test/test_data/eval_experiment", |
|
docker_image="docker.hobot.cc/auto/eval-traincli:v1.0.36test", |
|
desc="算法仓库发起评测使用,请勿删除.", |
|
tags=["test", "unittest"], |
|
config_files=[ |
|
AlgoConfig( |
|
name="eval_setting", |
|
local_path="test/test_data/eval_experiment/wk_setting.yaml", |
|
|
|
placeholder="${EVAL_SETTING}", |
|
), |
|
], |
|
) |
|
print(algorithm) |
|
|
|
|
|
|
|
def test_create_eval_task_env_test(unittest_client): |
|
client: AIDIClient = unittest_client |
|
|
|
algo_name = "eval_for_Semantic_Segmentation" |
|
algo = client.algo_house.get( |
|
algo_name=algo_name, download_config=True, download_package=True |
|
) |
|
|
|
|
|
cmd_args_dict = { |
|
"task_type": "Semantic_Segmentation", |
|
"predictions_dataset_id": "dataset://25616", |
|
"labels_dataset_id": "dataset://25615", |
|
|
|
|
|
"gt_dataset": "", |
|
"images_dataset_id": "dataset://25613", |
|
"group_name": "train-withBN", |
|
"experiment_name": "wjx_test_095", |
|
"run_name": "test_run_name_wjx_003", |
|
|
|
"prediction_name": "", |
|
} |
|
|
|
config_files = [ |
|
AlgoConfig( |
|
name="eval_setting", |
|
local_path="test/test_data/eval_experiment/wk_setting.yaml", |
|
|
|
placeholder="${EVAL_SETTING}", |
|
), |
|
] |
|
|
|
algo.update_config(config_files) |
|
algo.update_cmd(cmd_args_dict) |
|
|
|
|
|
|
|
cpu_count = 6 |
|
cpu_mem_ratio = 6 |
|
queue = "svc-aip-cpu" |
|
project = "PD20210425" |
|
job = client.single_job.create( |
|
job_name="eval_from_algo_%s_%s" |
|
% (algo.name, str(uuid1()).replace("-", "_")), |
|
job_type=JobType.APP_EVAL, |
|
ipd_number=project, |
|
queue_name=queue, |
|
running_resource=RunningResourceConfig( |
|
docker_image=algo.docker_image, |
|
instance=1, |
|
cpu=cpu_count, |
|
gpu=0, |
|
cpu_mem_ratio=cpu_mem_ratio, |
|
), |
|
mount=[], |
|
startup=StartUpConfig( |
|
command=algo.startup_command, |
|
), |
|
code_package=CodePackageConfig( |
|
raw_package=LocalPackageItem( |
|
lpath=algo.package_path, |
|
encrypt_passwd="12345", |
|
follow_softlink=True, |
|
).set_as_startup_dir(), |
|
), |
|
|
|
) |
|
print(job) |
|
|