예제 #1
0
# coding=utf-8
from __future__ import absolute_import, print_function

from suanpan.app import app
from suanpan.app.arguments import Model, Bool
from arguments import CFGModel


@app.param(Bool(key="usePredWeight", default=True))
@app.output(Model(key="model", type=CFGModel))
def SPRetinanetR101FPN(context):
    args = context.args
    if args.usePredWeight:
        args.model.load_model(
            "./detectron2/configs/COCO-Detection/retinanet_R_101_FPN_3x.yaml",
            "common/model/detectron2/ImageNetPretrained/MSRA/model_final_59f53c.pkl",
        )
    else:
        args.model.load_model(
            "./detectron2/configs/COCO-Detection/retinanet_R_101_FPN_3x.yaml",
            "",
        )
    return args.model


if __name__ == "__main__":
    SPRetinanetR101FPN()
예제 #2
0
# coding=utf-8
from __future__ import absolute_import, print_function

import tensorflow as tf
import suanpan
from suanpan.app import app
from suanpan.app.arguments import Folder, Model, Json
from model import TFModel
from utils.prework import get_predict_file, get_image


@app.input(Folder(key="inputData1", alias="predictImages"))
@app.input(Model(key="inputModel2", alias="model", type=TFModel))
@app.output(Json(key="outputData1", alias="predictions"))
def SPClassificationPredict(context):
    args = context.args
    predict_image = get_predict_file(args.predictImages)
    predictions = []
    with tf.Graph().as_default():
        for image in get_image(predict_image):
            labelnum = args.model.predict(image, args.model.model_dir)
            predictions.append(list(args.model.label_map.keys())[labelnum])

    return predictions


@app.afterCall
def modelHotReload(context):
    args = context.args
    if app.isStream:
        args.model.reload(duration=args.duration)
예제 #3
0
# coding=utf-8
from __future__ import absolute_import, print_function

import os
from suanpan.app.arguments import Folder, Int, Float, Model
from suanpan.app import app
from suanpan.log import logger
from suanpan.utils import json
from arguments import CFGModel


@app.input(Model(key="inputModel", type=CFGModel))
@app.input(Folder(key="inputTrainImage"))
@app.input(Folder(key="inputTrainJson"))
@app.input(Folder(key="inputTestImage"))
@app.input(Folder(key="inputTestJson"))
@app.param(Int(key="__gpu", default=0))
@app.param(Int(key="ImgsPerBatch", default=2))
@app.param(Float(key="BaseLR", default=0.00025))
@app.param(Int(key="MaxIter", default=300))
@app.param(Int(key="BatchSizePerImg", default=128))
@app.param(Int(key="NumWorkers", default=4))
@app.output(Model(key="outputModel", type=CFGModel))
@app.output(Folder(key="outputData"))
def SPTrainer(context):
    args = context.args
    model = args.inputModel
    device = "cuda" if args.__gpu else "cpu"
    logger.info(
        "**********Use {} Device for Training**********".format(device))
예제 #4
0
        return path

    def train(self, X, y, epochs=10):
        pass

    def evaluate(self, X, y):
        pass

    def predict(self, X):
        pass


@app.input(Folder(key="inputData1", alias="data"))
@app.input(Folder(key="inputData2", alias="model_config"))
@app.param(Int(key="param1", alias="num_train_steps", default=1))
@app.output(Model(key="outputModel1", alias="model", type=ODModel))
def SPObjectDetection(context):
    args = context.args
    P.copy(args.data, "./data")
    os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"  # 指定第一块GPU可用
    sess = tf.Session()
    FLAGS = {}
    FLAGS["model_dir"] = "./model"
    FLAGS["pipeline_config_path"] = os.path.join(
        args.model_config, "ssd_mobilenet_v1_coco.config")
    FLAGS["num_train_steps"] = args.num_train_steps
    FLAGS["eval_training_data"] = False
    FLAGS["sample_1_of_n_eval_examples"] = 1
    FLAGS["sample_1_of_n_eval_on_train_examples"] = 5
    FLAGS["hparams_overrides"] = None
    FLAGS["checkpoint_dir"] = None