def create_hub_bert(model_name, pretrained): assert model_name in MODEL_NAME, "{} not in the valid models {}".format( model_name, MODEL_NAME ) data_dir = "./{}".format(model_name) if not os.path.exists(data_dir): os.makedirs(data_dir) vocab_url = "{}/{}/{}".format(DATA_URL, model_name, VOCAB_NAME) config_url = "{}/{}/{}".format(DATA_URL, model_name, CONFIG_NAME) vocab_file = "./{}/{}".format(model_name, VOCAB_NAME) config_file = "./{}/{}".format(model_name, CONFIG_NAME) download_file(vocab_url, vocab_file) download_file(config_url, config_file) config = BertConfig(config_file) model = hub.load("megengine/models", MODEL_NAME[model_name], pretrained=pretrained) return model, config, vocab_file
import json import numpy as np import megengine as mge import megengine.functional as F import megengine.hub as hub import megengine.optimizer as optim from megengine.jit import trace # 使用GPU运行这个例子 assert mge.is_cuda_available(), "Please run with GPU" # 我们从 megengine hub 中加载一个 resnet50 模型。 resnet = hub.load("megengine/models", "resnet50") optimizer = optim.SGD(resnet.parameters(), lr=0.1,) # profiling=True 收集性能数据 @trace(symbolic=True, profiling=True) def train_func(data, label, *, net, optimizer): pred = net(data) loss = F.cross_entropy_with_softmax(pred, label) optimizer.backward(loss) resnet.train() batch_size = 64 # 运行 10 次,保存最后一次的性能结果 for i in range(10): batch_data = np.random.randn(batch_size, 3, 224, 224).astype(np.float32)
from megengine import hub model = hub.load( "megengine/models", "retinanet_res50_1x_800size", pretrained=True, ) model.eval() models_api = hub.import_module( "megengine/models", git_host="github.com", ) # Download an example image from the megengine data website import urllib url, filename = ("https://data.megengine.org.cn/images/cat.jpg", "cat.jpg") try: urllib.URLopener().retrieve(url, filename) except: urllib.request.urlretrieve(url, filename) # Read and pre-process the image import cv2 image = cv2.imread("cat.jpg") data, im_info = models_api.DetEvaluator.process_inputs(image, 800, 1333) model.inputs["image"].set_value(data) model.inputs["im_info"].set_value(im_info) from megengine import jit @jit.trace(symbolic=True) def infer(): predictions = model(model.inputs)