首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊DeepAR超参数调整错误

亚马逊DeepAR超参数调整错误
EN

Stack Overflow用户
提问于 2021-05-26 11:13:21
回答 1查看 200关注 0票数 0

这是我在运行代码后得到的结果:

文件"C:\Users\admin\anaconda3\envs\tensorflow_env\lib\site-packages\sagemaker\tuner.py",行484,在_prepare_estimator_for_tuning estimator._prepare_for_training(job_name)中

AttributeError:“DeepAREstimator”对象没有特性“”_prepare_for_training“”

似乎在互联网上很少有关于Amazon sagemaker deepar算法的超参数调整的例子。有人能帮我解决这个问题吗?

代码语言:javascript
复制
import mxnet as mx
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from gluonts.model.deepar import DeepAREstimator
from gluonts.mx.trainer import Trainer
from gluonts.dataset.common import ListDataset
from itertools import islice
from gluonts.evaluation.backtest import make_evaluation_predictions
from sagemaker.tuner import HyperparameterTuner, IntegerParameter, CategoricalParameter, ContinuousParameter

df = pd.read_csv('final.csv', index_col=0,parse_dates=True)
                        
training_data = ListDataset(
    [{"start": df.index[0], "target": df.outbound_qty[:pd.to_datetime('2021-01-01')],
      "feat_dynamic_real": [df.is_holiday[:pd.to_datetime('2021-01-01')],
                            df.is_salary[:pd.to_datetime('2021-01-01')],
                            df.count_qty[:pd.to_datetime('2021-01-01')],
                            df.shelf_qty[:pd.to_datetime('2021-01-01')]]
      }],
    freq="D"
)

estimator = DeepAREstimator(freq="D",prediction_length=7,trainer=Trainer(ctx=mx.context.cpu()))

hyperparams = {'learning_rate': ContinuousParameter(0.001, 0.1),
                'epochs': IntegerParameter(10, 100),
                'context_length': IntegerParameter(7, 90),
                'mini_batch_size': IntegerParameter(32, 128)
                }

tuner = HyperparameterTuner(estimator=estimator,  objective_metric_name="test:RMSE",
                        objective_type='Minimize',hyperparameter_ranges=hyperparams)

tuner.fit(inputs = training_data)
EN

回答 1

Stack Overflow用户

发布于 2021-05-26 17:10:00

你混合了两个不同版本的DeepAR,这就是你出错的原因。DeepAR (Salinas et al.)实际在3个地方实现:

  1. In :DeepAR+是DeepAR的托管实现,其中所有的科学代码都是为您编写的,您只需使用Forecast SDK在您的S3数据上启动该服务。(example)。如果您不想编写任何科学代码并希望获得托管体验,请使用亚马逊预测。中的
  2. :SageMaker有一个内置的DeepAR容器,您可以使用该容器对S3数据进行训练。请参见here the available hyperparametershere examples。如果您想要更多的控制,同时仍然不必编写模型代码(更多超参数,硬件choice)
  3. :),请使用SageMaker DeepAR。由亚马逊网络服务创建的GluonTS开源神经预测库附带DeepAR (example)的实现。因为它是开源的,你可以免费使用它,你可以浏览代码并将其安装在任何兼容的地方。例如,您可以在SageMaker容器(blog post)中使用GluonTS DeepAR。This blog post显示了SageMaker容器中的GluonTS LSTNet模型。如果你想要更多的自由,可以使用GluonTS。但请记住,更多的自由会带来更多的责任:你将不得不选择训练和推理硬件,并编写科学和编排代码。

没有证据表明这3个DeepAR实现有任何共同点(除了来自亚马逊网络服务),它们的代码库可能是不同的。

要使用DeepAR运行超参数调优,您有以下几种选择:

亚马逊预测中的

  1. :使用HyperparameterTuningJobConfig
  2. In亚马逊SageMaker DeepAR:使用SageMaker模型调整,亚马逊GluonTS中的SageMaker:使用带有自定义指标的SageMaker模型调整。
  3. 与GluonTS out of SageMaker:使用您选择的超参数调整库(RayTuneOptuna,...)在您选择的基础架构上使用
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67698061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档