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

Sagemaker在尝试部署我的模型时“找不到模型数据”

汪鸿志
2023-03-14

我有一个类似Sagemaker的培训脚本,

def train(current_host, hosts, num_cpus, num_gpus, channel_input_dirs, model_dir, hyperparameters, **kwargs):
    ... Train a network ...
    return net

def save(net, model_dir):
    # save the model
    logging.info('Saving model')
    y = net(mx.sym.var('data'))
    y.save('%s/model.json' % model_dir)
    net.collect_params().save('%s/model.params' % model_dir)

def model_fn(model_dir):
    symbol = mx.sym.load('%s/model.json' % model_dir)
    outputs = mx.symbol.softmax(data=symbol, name='softmax_label')
    inputs = mx.sym.var('data')
    param_dict = gluon.ParameterDict('model_')
    net = gluon.SymbolBlock(outputs, inputs, param_dict)
    net.load_params('%s/model.params' % model_dir, ctx=mx.cpu())
    return net

其中大部分都是我从MNIST的例子中偷来的。

当我训练的时候,一切都很顺利,但是当我试着像,

m = MXNet("lstm_trainer.py", 
          role=role, 
          train_instance_count=1, 
          train_instance_type="ml.c4.xlarge",
          hyperparameters={'batch_size': 100, 
                         'epochs': 20, 
                         'learning_rate': 0.1, 
                         'momentum': 0.9, 
                         'log_interval': 100})
m.fit(inputs) # No errors
predictor = m.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

我得到(完整输出)

INFO:sagemaker:Creating model with name: sagemaker-mxnet-py2-cpu-2018-01-17-20-52-52-599
---------------------------------------------------------------------------
  ... Stack dump ...
ClientError: An error occurred (ValidationException) when calling the CreateModel operation: Could not find model data at s3://sagemaker-us-west-2-01234567890/sagemaker-mxnet-py2-cpu-2018-01-17-20-52-52-599/output/model.tar.gz.

在我的S3桶s3://sagemaker-us-West-2-01234567890 /sagemaker-mxnet-py2-cpu-2018-01-17-20-52-52-599 /output/model.tar.gz中,我实际上没有看到模型。

我错过了什么?

共有2个答案

耿锦
2023-03-14

我曾经在Sagemaker上以非常相似的方式使用不同的估计器遇到同样的问题。

我的问题是在重新部署的第一次部署之后,我不得不删除旧的“endpoint配置”——它令人困惑地将endpoint指向旧的模型位置。我想这可以通过使用AWS API的python来完成,尽管如果这是同一个问题,在门户上测试非常容易。

钱均
2023-03-14

调用培训作业时,应指定输出目录:

#Bucket location where results of model training are saved.
model_artifacts_location = 's3://<bucket-name>/artifacts'

m = MXNet(entry_point='lstm_trainer.py',
          role=role,
          output_path=model_artifacts_location,
          ...)

如果不指定输出目录,函数将使用默认位置,它可能没有创建或写入的权限。

 类似资料:
  • 我已经成功地部署了这三个功能几个月了,现在它突然开始绊倒我。我已经有一段时间没有更改节点、npm或Firebase cli版本了。我升级了函数目录中的npm包,急于解决这个问题,但运气不好。为什么会发生这种情况?回购(悬浮滑板-v2分支):https://github.com/gdgfresno/valleydevfest2017/tree/hoverboard-v2/functions Ubun

  • GX8010中,CPU和MCU各有一个NPU,CPU中的为主NPU,MCU中的为SNPU,NPU比SNPU的性能更强,功耗也更大。 CPU可以控制NPU或SNPU,MCU只能控制SNPU。 由于CPU和MCU的特点不同,在其上面使用NPU的API也不同。 CPU中使用NPU或SNPU 生成能在CPU上运行的模型文件,需要在编译模型的配置文件中指定: OUTPUT_TYPE: raw 在CPU上内存

  • 我在amazon sagemaker上使用aws blazingtext算法训练了一个模型,并且我能够使用sagemaker部署一个endpoint。然而,在我的情况下,这是不符合成本效益的,我想在本地运行它。我发现这方面的文档很混乱。 我拥有的是一个经过训练的模型,它被保存为一个“model.tar.gz”文件,我从s3 bucket下载了这个文件。我在网上读到,您可以使用tensorflow和

  • 我是AWS新手,尝试通过参考他们的演示来构建模型(从web控制台)。然而,当我尝试创建模型时,它给出了以下错误。 无法访问位于bucket\u namemodel\u name

  • 问题内容: 我部署了一个keras模型,并通过flask API将测试数据发送到该模型。我有两个文件: 首先:My Flask应用程序: 第二:文件Im用于将json数据发送到api端点: 我从Flask收到有关Tensorflow的回复: ValueError:Tensor Tensor(“ dense_6 / BiasAdd:0”,shape =(?, 1),dtype = float32)不

  • 错误:光电控制器中存在FatalErrorException。php第17行:找不到类“App\Http\Controllers\photo” 此代码出现异常-