model_list.py 3.0 KB
Newer Older
M
MRXLT 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

import sys
import os
from collections import OrderedDict


class ServingModels(object):
    def __init__(self):
        self.model_dict = OrderedDict()
D
dongdaxiang 已提交
23 24 25 26 27
        self.model_dict[
            "SentimentAnalysis"] = ["senta_bilstm", "senta_bow", "senta_cnn"]
        self.model_dict["SemanticRepresentation"] = ["ernie_base"]
        self.model_dict["ChineseWordSegmentation"] = ["lac"]
        self.model_dict["ObjectDetection"] = ["faster_rcnn", "yolov3"]
28
        self.model_dict["ImageSegmentation"] = [
J
Jiawei Wang 已提交
29
            "unet", "deeplabv3", "deeplabv3+cityscapes"
30
        ]
D
dongdaxiang 已提交
31
        self.model_dict["ImageClassification"] = [
D
dongdaxiang 已提交
32
            "resnet_v2_50_imagenet", "mobilenet_v2_imagenet"
D
dongdaxiang 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
        ]

        image_class_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ImageClassification/"
        image_seg_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ImageSegmentation/"
        object_detection_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ObjectDetection/"
        senta_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SentimentAnalysis/"
        semantic_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SemanticRepresentation/"
        wordseg_url = "https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/ChineseWordSegmentation/"

        self.url_dict = {}

        def pack_url(model_dict, key, url):
            for i, value in enumerate(model_dict[key]):
                self.url_dict[model_dict[key][i]] = url + model_dict[key][
                    i] + ".tar.gz"

        pack_url(self.model_dict, "SentimentAnalysis", senta_url)
        pack_url(self.model_dict, "SemanticRepresentation", semantic_url)
        pack_url(self.model_dict, "ChineseWordSegmentation", wordseg_url)
        pack_url(self.model_dict, "ObjectDetection", object_detection_url)
        pack_url(self.model_dict, "ImageSegmentation", image_seg_url)
        pack_url(self.model_dict, "ImageClassification", image_class_url)
M
MRXLT 已提交
55 56

    def get_model_list(self):
D
dongdaxiang 已提交
57
        return self.model_dict
M
MRXLT 已提交
58 59

    def download(self, model_name):
D
dongdaxiang 已提交
60 61
        if model_name in self.url_dict:
            url = self.url_dict[model_name]
M
MRXLT 已提交
62 63
            r = os.system('wget ' + url + ' --no-check-certificate')

D
dongdaxiang 已提交
64 65 66 67
    def get_tutorial(self, model_name):
        if model_name in self.tutorial_url:
            return "Tutorial of {} to be added".format(model_name)

M
MRXLT 已提交
68 69 70 71

if __name__ == "__main__":
    models = ServingModels()
    print(models.get_model_list())