当前位置: 首页 > 知识库问答 >
问题:

用Sagemaker训练的模型进行局部预测

胡向阳
2023-03-14

我已经在AWS SageMaker上使用内置算法语义分割训练了一个模型。这个名为model.tar.gz的训练模型存储在S3上。所以我想从S3下载这个文件,然后使用它在我的本地电脑上进行推断,而不使用AWS SageMaker。

以下是三个文件:

>

  • hyperparams.json:包括网络架构、数据输入和训练的参数。请参阅语义分割超参数。

    model_algo-1

    model_最佳。参数

    我的代码

    import mxnet as mx
    from mxnet import image
    from gluoncv.data.transforms.presets.segmentation import test_transform
    import gluoncv
    
    
    
    img = image.imread('./bdd100k/validation/14df900d-c5c145cb.jpg')
    img = test_transform(img, ctx)
    img = img.astype('float32')
    
    
    model = gluoncv.model_zoo.PSPNet(2)
    
    # load the trained model
    model.load_parameters('./model/model_best.params')
    

    错误:

    AssertionError: Parameter 'head.psp.conv1.0.weight' is missing in file './model/model_best.params', which contains parameters: 'layer3.2.bn3.beta', 'layer3.0.conv3.weight', 'conv1.1.running_var', ..., 'layer2.2.bn3.running_mean', 'layer3.4.bn2.running_mean', 'layer4.2.bn3.beta', 'layer3.4.bn3.beta'. Set allow_missing=True to ignore missing parameters.
    
  • 共有1个答案

    花飞尘
    2023-03-14

    在从tar中提取模型_algo-1后,以下操作应起作用。gz文件。这将在本地ctx上运行。

    import gluoncv
    from gluoncv import model_zoo
    from gluoncv.data.transforms.presets.segmentation import test_transform
    
    model = model_zoo.DeepLabV3(nclass=2, backbone='resnet50', 
    pretrained_base=False, height=800, width=1280, crop_size=240)
    model.load_parameters("model_algo-1")
    
    img = test_transform(img, ctx)
    img = img.astype('float32')
    
    output = model.predict(img)
    print(output.shape)
    max_predict = mx.nd.squeeze(mx.nd.argmax(output, 1)).asnumpy()
    print(max_predict.shape)
    
    prob_mask = mx.nd.squeeze(output).asnumpy()
    
    def NormalizeData(data):
        return (data - np.min(data)) / (np.max(data) - np.min(data))
    
    target_cls_id = 1
    prob_mat = prob_mask[target_cls_id, :, :]
    norm_prob = NormalizeData(prob_mat)
    plt.hist(norm_prob.flatten(), bins=50)
    
     类似资料:
    • 我希望使用AWS Sagemaker工作流部署一个预训练的模型,用于实时行人和/或车辆检测,我特别想使用Sagemaker Neo编译模型并将其部署在边缘。我想从他们的模型动物园中使用OpenVino的预构建模型之一,但是当我下载模型时,它已经是他们自己的优化器的中间表示(IR)格式。 > 如果没有,是否有任何免费的预训练模型(使用任何流行的框架,如pytorch,tenorflow,ONXX等)

    • 我可以在AWS Sagemaker中通过评估模型来训练多个模型train.py脚本,以及如何从多个模型中获取多个指标? 任何链接、文档或视频都很有用。

    • 我有一个预先训练好的模型,我正在从S3 Bucket加载到AWS SageMaker笔记本实例中,在提供测试图像用于从S3 Bucket进行预测后,它会根据需要为我提供准确的结果。我想部署它,这样我就可以有一个endpoint,我可以进一步与AWS Lambda函数和AWS API网关集成,这样我就可以使用实时应用程序的模型。知道如何从AWS Sagemaker笔记本实例部署模型并获取其endpo

    • 我试图避免将现有的模型训练过程迁移到SageMaker,并避免创建一个定制Docker容器来承载我们训练过的模型。 我的希望是将我们现有的、经过培训的模型注入AWS通过sagemaker python sdk提供的预构建scikit学习容器中。我发现的所有示例都需要先培训模型,然后在SageMaker中创建模型/模型配置。然后使用方法进行部署。 是否可以为方法提供经过培训的模型,并将其托管在AWS

    • 我正在尝试将一个使用sklearn训练的模型部署到endpoint,并将其作为预测的API。我想使用sagemaker的目的就是部署和服务器模型,我已经使用序列化了这个模型,仅此而已。我读过的每个博客和sagemaker python文档都表明,为了在sagemaker中部署,sklearn模型必须在sagemaker上进行培训。 在阅读SageMaker文档时,我了解到SageMaker允许用户

    • 我有一个模型。预训练的pkl文件以及与ml模型相关的所有其他文件。我想把它部署到aws sagemaker上。但是在没有培训的情况下,如何将其部署到aws sagmekaer,就像aws sagemaker中的fit()方法一样,运行train命令并推送模型。焦油gz到s3位置,当使用deploy方法时,它使用相同的s3位置来部署模型,我们不会在s3中手动创建与aws模型创建的位置相同的位置,并使