1 Star 0 Fork 1

ApulisPlatform / model-gallery

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
deploy.py 19.81 KB
一键复制 编辑 原始数据 按行查看 历史
wscjxky 提交于 2021-10-23 11:51 . add mit license
############################################################################
# 2019 - present Contributed by Apulis Technology (Shenzhen) Co. LTD
#
# This program and the accompanying materials are made available under the
# terms of the MIT License, which is available at
# https://www.opensource.org/licenses/MIT
#
# See the NOTICE file distributed with this work for additional
# information regarding copyright ownership.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: MIT
############################################################################
import os
import sys
import json
BASE_CODE_PATH = "/data/model-gallery/"
BASE_DATASET_PATH = "/data/dataset/storage"
CPU_ARCH = ["arm", "amd"]
DEVICE_TYPE = ["npu", "gpu"]
datasets_sql = ""
IS_ADVANCE = "true"
modelsets_sql = f"DELETE FROM modelsets WHERE is_advance={IS_ADVANCE};\n"
args = sys.argv
only_npu = args[1]
# is_202 =bool(int(args[2]))
# is_npu=bool(int(args[3]))
# is_arm =bool(int(args[4]))
# TODO
# 区分不同架构、不同设备的模型
def is_match_device():
return
def gen_sql(data, path):
global modelsets_sql, datasets_sql
models = data["models"]
code_path = os.path.join(BASE_CODE_PATH, path).replace("\\", "/")
if data["status"] != "normal":
return
for model in models:
if "gpu" in model["device_type"] and only_npu == "y":
continue
if "npu" in model["device_type"] and only_npu == "n":
continue
engine = model["engine"]
dataset = model["dataset"]
# 把相对路径转换为服务器上指定路径,并且去掉windows上的反斜杠
dataset_path = os.path.join(BASE_DATASET_PATH, dataset["path"]).replace("\\", "/")
if not dataset_path.endswith("/"):
dataset_path += "/"
start_file = os.path.join(code_path, model["startup_file"]).replace("\\", "/")
params = json.dumps(model["params"])
# 新增模型sql
# if is_mysql:
try:
modelsets_sql += f'''DELETE FROM modelsets WHERE name = '{model["name"]}';
INSERT INTO modelsets (created_at, updated_at, deleted_at, name, description, creator, version,
status, size, use, job_id, data_format, dataset_name, dataset_path, params,
engine, precision, is_advance, code_path, param_path, output_path, startup_file, visual_path,
evaluation_id, device_type, device_num)
VALUES ('{data["created_at"]}', '{data["updated_at"]}', NULL, '{model["name"]}', '{model["description"]}', 'admin', '{data["version"]}', '{data["status"]}'
, {model["size"]},'{model["use"]}', '', '{dataset["format"]}', '{dataset["name"]}', '{dataset_path}','{params}',
'{engine}', '{model["precision"]}', {IS_ADVANCE}, '{code_path}', '{model["output_path"]}',
'{model["output_path"]}', '{start_file}','{model["output_path"]}', '', '{model["device_type"]}', {model["device_num"]});'''
modelsets_sql += "\n"
# 新增数据集sql
datasets_sql += f'''DELETE FROM datasets WHERE name = '{dataset["name"]}';
INSERT INTO datasets (created_at, updated_at, deleted_at, name, description, creator, version, path,
status, binds, is_private, is_translated, size)
VALUES ('{data["created_at"]}', '{data["updated_at"]}', NULL, '{dataset["name"]}', '{dataset["description"]}', 'admin', '{data["version"]}','{dataset_path}', '{data["status"]}', '', false, {IS_ADVANCE}, {dataset["size"]});'''
datasets_sql += "\n"
except Exception as e:
print(e,model["name"])
def gen_visual_sql():
global modelsets_sql
modelsets_sql += '''
delete from modelsets where use like 'Avisualis%' and is_advance=true;
INSERT INTO public.modelsets ( created_at, updated_at, deleted_at, name, description, creator, version, status, size, use, job_id, data_format, dataset_name, dataset_path, params, engine, precision, is_advance, code_path, param_path, output_path, startup_file, visual_path, evaluation_id, device_type, device_num) VALUES ( '2020-09-20 13:40:13.000000', '2020-09-20 03:40:13.000000', null, 'Classfication', null, 'avisualis', '1.0', null, null, 'Avisualis_Model_Classfication', null, null, null, null, '{"panel":"[{\\"children\\":[],\\"name\\":\\"Input\\"},{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"depth\\",\\"options\\":[50,101,152],\\"type\\":\\"select\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[3]},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"}],\\"name\\":\\"ResNet\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"depth\\",\\"options\\":[50,101,152],\\"type\\":\\"select\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[3]},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"}],\\"name\\":\\"ResNext(developing)\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"depth\\",\\"options\\":[50,101,152],\\"type\\":\\"select\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[3]},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"}],\\"name\\":\\"SEResNet(developing)\\"}],\\"name\\":\\"Backbone\\"},{\\"children\\":[{\\"config\\":[],\\"name\\":\\"AdaptiveAvgMaxPool2d(developing)\\"},{\\"config\\":[],\\"name\\":\\"GlobalAveragePooling\\"}],\\"name\\":\\"Neck\\"},{\\"children\\":[{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"CrossEntropyLoss\\"},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"number\\",\\"value\\":1}],\\"name\\":\\"loss\\"}],\\"config\\":[{\\"key\\":\\"num_classes\\",\\"type\\":\\"number\\",\\"value\\":10},{\\"key\\":\\"in_channels\\",\\"type\\":\\"number\\",\\"value\\":2048}],\\"name\\":\\"LinearClsHead\\"}],\\"name\\":\\"Head\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.001}],\\"name\\":\\"SGD\\"},{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.001}],\\"name\\":\\"ADAM\\"}],\\"name\\":\\"Optimizer\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"work_dir\\",\\"type\\":\\"string\\",\\"value\\":\\"work_dir/resnet50_ap\\"},{\\"key\\":\\"batch_size\\",\\"type\\":\\"number\\",\\"value\\":2},{\\"key\\":\\"total_epochs\\",\\"type\\":\\"number\\",\\"value\\":2}],\\"name\\":\\"Runtime\\"}],\\"name\\":\\"Output\\"}]","pipeline_config":"/data/model/tmp/1603245697346790793.json"}', 'harbor.sigsus.cn:8443/sz_gongdianju/apulistech/apulisvision:1.0.0', '', true, '/data/model-gallery/models/gpu/apulisvision/', '~/avisualis/', '~/avisualis/Classfication', '/data/model-gallery/models/gpu/apulisvision/tools/train_cls.py', 'work_dir/resnet50_ap', '', 'nvidia_gpu_amd64', 1);
INSERT INTO public.modelsets ( created_at, updated_at, deleted_at, name, description, creator, version, status, size, use, job_id, data_format, dataset_name, dataset_path, params, engine, precision, is_advance, code_path, param_path, output_path, startup_file, visual_path, evaluation_id, device_type, device_num) VALUES ( '2020-09-20 13:40:13.000000', '2020-09-20 03:40:13.000000', null, 'ObjectDetection', null, 'avisualis', '1.0', null, null, 'Avisualis_Model_ObjectDetection', null, null, null, null,'{"panel":"[{\\"children\\":[],\\"name\\":\\"Input\\"},{\\"children\\":[{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"BN\\"}],\\"name\\":\\"norm_cfg\\"}],\\"config\\":[{\\"key\\":\\"depth\\",\\"type\\":\\"number\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[0,1,2,3]},{\\"key\\":\\"dilations\\",\\"type\\":\\"string\\",\\"value\\":[1,1,2,4]},{\\"key\\":\\"strides\\",\\"type\\":\\"string\\",\\"value\\":[1,2,1,1]},{\\"key\\":\\"norm_eval\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"},{\\"key\\":\\"contract_dilation\\",\\"type\\":\\"string\\",\\"value\\":true}],\\"name\\":\\"ResNet\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"depth\\",\\"type\\":\\"number\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[0,1,2,3]},{\\"key\\":\\"dilations\\",\\"type\\":\\"string\\",\\"value\\":[1,1,2,4]},{\\"key\\":\\"strides\\",\\"type\\":\\"string\\",\\"value\\":[1,2,1,1]},{\\"key\\":\\"norm_eval\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"},{\\"key\\":\\"contract_dilation\\",\\"type\\":\\"string\\",\\"value\\":true}],\\"name\\":\\"ResNeXt(developing)\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"depth\\",\\"type\\":\\"number\\",\\"value\\":50},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[0,1,2,3]},{\\"key\\":\\"dilations\\",\\"type\\":\\"string\\",\\"value\\":[1,1,2,4]},{\\"key\\":\\"strides\\",\\"type\\":\\"string\\",\\"value\\":[1,2,1,1]},{\\"key\\":\\"norm_eval\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"},{\\"key\\":\\"contract_dilation\\",\\"type\\":\\"string\\",\\"value\\":true}],\\"name\\":\\"ResNetV1s(developing)\\"}],\\"name\\":\\"Backbone\\"},{\\"children\\":[{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"CrossEntropyLoss\\"},{\\"key\\":\\"use_sigmoid\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"number\\",\\"value\\":1}],\\"name\\":\\"loss_decode\\"}],\\"config\\":[{\\"key\\":\\"in_channels\\",\\"type\\":\\"number\\",\\"value\\":2048},{\\"key\\":\\"in_index\\",\\"type\\":\\"number\\",\\"value\\":3},{\\"key\\":\\"channels\\",\\"type\\":\\"number\\",\\"value\\":512},{\\"key\\":\\"num_convs\\",\\"type\\":\\"number\\",\\"value\\":2},{\\"key\\":\\"concat_input\\",\\"type\\":\\"string\\",\\"value\\":true},{\\"key\\":\\"dropout_ratio\\",\\"type\\":\\"number\\",\\"value\\":0.1},{\\"key\\":\\"num_classes\\",\\"type\\":\\"number\\",\\"value\\":19},{\\"key\\":\\"align_corners\\",\\"type\\":\\"string\\",\\"value\\":false}],\\"name\\":\\"Decode_FCNHead\\"}],\\"name\\":\\"DecodeHead\\"},{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"in_channels\\",\\"type\\":\\"number\\",\\"value\\":1024},{\\"key\\":\\"in_index\\",\\"type\\":\\"number\\",\\"value\\":2},{\\"key\\":\\"channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"num_convs\\",\\"type\\":\\"number\\",\\"value\\":1},{\\"key\\":\\"concat_input\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"dropout_ratio\\",\\"type\\":\\"number\\",\\"value\\":0.1},{\\"key\\":\\"num_classes\\",\\"type\\":\\"number\\",\\"value\\":19},{\\"key\\":\\"align_corners\\",\\"type\\":\\"string\\",\\"value\\":false}],\\"name\\":\\"Auxiliary_FCNHead\\"}],\\"name\\":\\"AuxiliaryHead\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.001}],\\"name\\":\\"SGD\\"},{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.001}],\\"name\\":\\"ADAM\\"}],\\"name\\":\\"Optimizer\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"work_dir\\",\\"type\\":\\"string\\",\\"value\\":\\"work_dir/fasterrcnn_ap\\"},{\\"key\\":\\"batch_size\\",\\"type\\":\\"number\\",\\"value\\":2},{\\"key\\":\\"total_epochs\\",\\"type\\":\\"number\\",\\"value\\":2}],\\"name\\":\\"Runtime\\"}],\\"name\\":\\"Output\\"}]","pipeline_config":"/data/model/tmp/1603245738455240281.json"}', 'harbor.sigsus.cn:8443/sz_gongdianju/apulistech/apulisvision:1.0.0', '', true, '/data/model-gallery/models/gpu/apulisvision/', '~/avisualis/', '~/avisualis/ObjectDetection', '/data/model-gallery/models/gpu/apulisvision/tools/train_det.py', 'work_dir/fasterrcnn_ap', '', 'nvidia_gpu_amd64', 1);
INSERT INTO public.modelsets ( created_at, updated_at, deleted_at, name, description, creator, version, status, size, use, job_id, data_format, dataset_name, dataset_path, params, engine, precision, is_advance, code_path, param_path, output_path, startup_file, visual_path, evaluation_id, device_type, device_num) VALUES ( '2020-09-20 13:40:13.000000', '2020-09-20 03:40:13.000000', null, 'Segmentation', null, 'avisualis', '1.0', null, null, 'Avisualis_Model_Segmentation', null, null, null, null, '
{"panel":"[{\\"children\\":[],\\"name\\":\\"Input\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"depth\\",\\"options\\":[50,101,152],\\"type\\":\\"select\\",\\"value\\":50},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"BN\\"},{\\"key\\":\\"requires_grad\\",\\"type\\":\\"string\\",\\"value\\":true}],\\"name\\":\\"norm_cfg\\"},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[0,1,2,3]},{\\"key\\":\\"frozen_stages\\",\\"type\\":\\"number\\",\\"value\\":1},{\\"key\\":\\"norm_eval\\",\\"type\\":\\"string\\",\\"value\\":true},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"}],\\"name\\":\\"ResNet\\"},{\\"config\\":[{\\"key\\":\\"depth\\",\\"options\\":[50,101,152],\\"type\\":\\"select\\",\\"value\\":50},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"BN\\"},{\\"key\\":\\"requires_grad\\",\\"type\\":\\"string\\",\\"value\\":true}],\\"name\\":\\"norm_cfg\\"},{\\"key\\":\\"num_stages\\",\\"type\\":\\"number\\",\\"value\\":4},{\\"key\\":\\"out_indices\\",\\"type\\":\\"string\\",\\"value\\":[0,1,2,3]},{\\"key\\":\\"frozen_stages\\",\\"type\\":\\"number\\",\\"value\\":1},{\\"key\\":\\"norm_eval\\",\\"type\\":\\"string\\",\\"value\\":true},{\\"key\\":\\"style\\",\\"type\\":\\"string\\",\\"value\\":\\"pytorch\\"}],\\"name\\":\\"ResNext(developing)\\"}],\\"name\\":\\"Backbone\\"},{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"FPN\\"},{\\"key\\":\\"in_channels\\",\\"type\\":\\"string\\",\\"value\\":[256,512,1024,2048]},{\\"key\\":\\"out_channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"num_outs\\",\\"type\\":\\"number\\",\\"value\\":5}],\\"name\\":\\"FPN\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"FPN\\"},{\\"key\\":\\"in_channels\\",\\"type\\":\\"string\\",\\"value\\":[256,512,1024,2048]},{\\"key\\":\\"out_channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"num_outs\\",\\"type\\":\\"number\\",\\"value\\":5}],\\"name\\":\\"PAFPN(developing)\\"}],\\"name\\":\\"Neck\\"},{\\"children\\":[{\\"children\\":[{\\"children\\":[{\\"children\\":[],\\"config\\":[],\\"name\\":\\"strides\\"}],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"AnchorGenerator\\"},{\\"key\\":\\"scales\\",\\"type\\":\\"string\\",\\"value\\":[8]},{\\"key\\":\\"ratios\\",\\"type\\":\\"string\\",\\"value\\":[0.5,1,2]}],\\"name\\":\\"anchor_generator\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"DeltaXYWHBBoxCoder\\"},{\\"key\\":\\"target_means\\",\\"type\\":\\"string\\",\\"value\\":[0,0,0,0]},{\\"key\\":\\"target_stds\\",\\"type\\":\\"string\\",\\"value\\":[1,1,1,1]}],\\"name\\":\\"bbox_coder\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"CrossEntropyLoss\\"},{\\"key\\":\\"use_sigmoid\\",\\"type\\":\\"string\\",\\"value\\":true},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"number\\",\\"value\\":1}],\\"name\\":\\"loss_cls\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"L1Loss\\"},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"number\\",\\"value\\":1}],\\"name\\":\\"loss_bbox\\"}],\\"config\\":[{\\"key\\":\\"in_channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"feat_channels\\",\\"type\\":\\"number\\",\\"value\\":256}],\\"name\\":\\"RPNHead\\"}],\\"name\\":\\"Head\\"},{\\"children\\":[{\\"config\\":[{\\"children\\":[{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"RoIAlign\\"},{\\"key\\":\\"output_size\\",\\"type\\":\\"string\\",\\"value\\":7},{\\"key\\":\\"sampling_ratio\\",\\"type\\":\\"string\\",\\"value\\":0}],\\"name\\":\\"roi_layer\\"}],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"SingleRoIExtractor\\"},{\\"key\\":\\"out_channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"featmap_strides\\",\\"type\\":\\"string\\",\\"value\\":[4,8,16,32]}],\\"name\\":\\"bbox_roi_extractor\\"},{\\"children\\":[{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"DeltaXYWHBBoxCoder\\"},{\\"key\\":\\"target_means\\",\\"type\\":\\"string\\",\\"value\\":[0,0,0,0]},{\\"key\\":\\"target_stds\\",\\"type\\":\\"string\\",\\"value\\":[0.1,0.1,0.2,0.2]}],\\"name\\":\\"bbox_coder\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"CrossEntropyLoss\\"},{\\"key\\":\\"use_sigmoid\\",\\"type\\":\\"string\\",\\"value\\":false},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"string\\",\\"value\\":1}],\\"name\\":\\"loss_cls\\"},{\\"children\\":[],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"L1Loss\\"},{\\"key\\":\\"loss_weight\\",\\"type\\":\\"string\\",\\"value\\":1}],\\"name\\":\\"loss_bbox\\"}],\\"config\\":[{\\"key\\":\\"type\\",\\"type\\":\\"string\\",\\"value\\":\\"Shared2FCBBoxHead\\"},{\\"key\\":\\"in_channels\\",\\"type\\":\\"number\\",\\"value\\":256},{\\"key\\":\\"fc_out_channels\\",\\"type\\":\\"number\\",\\"value\\":1024},{\\"key\\":\\"roi_feat_size\\",\\"type\\":\\"number\\",\\"value\\":7},{\\"key\\":\\"num_classes\\",\\"type\\":\\"number\\",\\"value\\":80},{\\"key\\":\\"reg_class_agnostic\\",\\"type\\":\\"string\\",\\"value\\":false}],\\"name\\":\\"bbox_head\\"}]}],\\"name\\":\\"StandardRoIHead\\"}],\\"name\\":\\"ROIHead\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.01}],\\"name\\":\\"SGD\\"},{\\"config\\":[{\\"key\\":\\"learning_rate\\",\\"type\\":\\"number\\",\\"value\\":0.001}],\\"name\\":\\"ADAM\\"}],\\"name\\":\\"Optimizer\\"},{\\"children\\":[{\\"config\\":[{\\"key\\":\\"work_dir\\",\\"type\\":\\"string\\",\\"value\\":\\"work_dir/fcn_ap\\"},{\\"key\\":\\"batch_size\\",\\"type\\":\\"number\\",\\"value\\":2},{\\"key\\":\\"total_iters\\",\\"type\\":\\"number\\",\\"value\\":1000}],\\"name\\":\\"Runtime\\"}],\\"name\\":\\"Output\\"}]","pipeline_config":"/data/model/tmp/1603245720962199611.json"}', 'harbor.sigsus.cn:8443/sz_gongdianju/apulistech/apulisvision:1.0.0', '', true, '/data/model-gallery/models/gpu/apulisvision/', '~/avisualis/', '~/avisualis/Segmentation', '/data/model-gallery/models/gpu/apulisvision/tools/train_seg.py', 'work_dir/fcn_ap', '', 'nvidia_gpu_amd64', 1);
'''
def main():
CONFIG_NAME = "gallery_config.json"
for root, dirs, files in os.walk("models/"):
for file in files:
if CONFIG_NAME in file:
config_file = open(os.path.join(root, file))
config = json.load(config_file)
gen_sql(config, root)
config_file.close()
gen_visual_sql()
with open("modelsets.sql", "w")as f:
f.write(modelsets_sql)
with open("datasets.sql", "w")as f:
f.write(datasets_sql)
print(20 * "<")
print("sql files are already generated")
print(20 * "<")
if __name__ == '__main__':
main()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/apulisplatform/model-gallery.git
git@gitee.com:apulisplatform/model-gallery.git
apulisplatform
model-gallery
model-gallery
v1.6.0

搜索帮助

344bd9b3 5694891 D2dac590 5694891