首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hyperopt:定义搜索空间

Hyperopt:定义搜索空间
EN

Stack Overflow用户
提问于 2018-01-22 17:03:59
回答 1查看 3.1K关注 0票数 3

我很难理解搜索空间定义的逻辑。

我想找一下这些:

  • 要使用的模型类型(features_and_hours、features_only、hours_only、no_features_no_hours)
  • 隐藏单元数(output_units)
  • 核矩阵的正则化(type = l1、l2或l1l2)
  • 核矩阵的正则化值(从0.0到0.5)
  • 活动的正则化(type = l1、l2或l1l2)
  • 活动的正规化值(任何地方从0.0到0.5)
  • 历元数(num_epochs,1、5或10)
  • 要使用的优化器( adadelta,adam,或rmsprop)
  • 是否和如何应用注意(在此之前、之后或没有)

下面是我设置的方式,下面是这个例子 (页面上的第二篇文章,由jacobzweig撰写)

代码语言:javascript
复制
def para_space():

        space_paras = {'model_type': hp.choice('model_type', ['features_and_hours', 'features_only', 'hours_only', 'no_features_no_hours']),
                        'output_units': hp.uniform('output_units', 1, 10),
                        'kernel_reg': hp.choice('kernel_reg', [{'reg_type':'l1', 'reg_vals': hp.uniform('reg_vals', 0.0, 0.5)},
                                                                {'reg_type':'l2','reg_vals': hp.uniform('reg_vals', 0.0, 0.5)},
                                                                {'reg_type':'l1l2', 'reg_vals': hp.uniform('reg_vals', 0.0, 0.5)}]),
                        'activity_reg': hp.choice('activity_reg', [{'reg_type':'l1', 'reg_vals': hp.uniform('reg_vals', 0.0, 0.5)},
                                                                {'reg_type':'l2','reg_vals': hp.uniform('reg_vals', 0.0, 0.5)},
                                                                {'reg_type':'l1l2', 'reg_vals': hp.uniform('reg_vals', 0.0, 0.5)}]),
                        'num_epochs': hp.choice('num_epochs', [1, 5, 10]),
                        'optimizer': hp.choice('optimizer', ['adadelta', 'adam', 'rmsprop']),
                        'attention': hp.choice('attention', ['before', 'after', 'none'])}
        return space_paras

我得到的错误是:

代码语言:javascript
复制
Using TensorFlow backend.
Traceback (most recent call last):
  File "Jan22Model1.py", line 374, in <module>
    best = fmin(lstm_model_1, params, algo=tpe.suggest, max_evals=5, trials=trials)
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/hyperopt/fmin.py", line 307, in fmin
    return_argmin=return_argmin,
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/hyperopt/base.py", line 635, in fmin
    return_argmin=return_argmin)
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/hyperopt/fmin.py", line 314, in fmin
    pass_expr_memo_ctrl=pass_expr_memo_ctrl)
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/hyperopt/base.py", line 776, in __init__
    raise DuplicateLabel(label)
hyperopt.exceptions.DuplicateLabel: reg_vals

但是在这个例子中,似乎有重复的标签不会抛出错误。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 15:28:18

最后,我重组了空间,解决了这个问题:

代码语言:javascript
复制
def para_space():
    space_paras = {'model_type': hp.choice('model_type', ['features_and_hours', 'features_only', 'hours_only', 'no_features_no_hours']),
                    'output_units': hp.uniform('output_units', 1, 10),
                    'kernel_reg': hp.choice('kernel_reg', ['l1', 'l2', 'l1_l2']),
                    'kernel_reg_value': hp.uniform('kernel_reg_value', 0.0, 0.5),
                    'activity_reg': hp.choice('activity_reg', ['l1', 'l2', 'l1_l2']),
                    'activity_reg_value': hp.uniform('activity_reg_value', 0.0, 0.5),
                     'optimizer': hp.choice('optimizer', ['adadelta', 'adam', 'rmsprop']),
                     'attention': hp.choice('attention', ['before', 'after', 'none'])} 
   return space_paras
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48386740

复制
相关文章

相似问题

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