CNTK:在LSTM输出上应用平均池

  • 本文关键字:应用 输出 LSTM CNTK cntk
  • 更新时间 :
  • 英文 :


我正在尝试对序列的LSTM输出应用平均池函数:

Sequential([
Embedding(emb_dim),
pooling(Recurrence(LSTM(hidden_dim), go_backwards=False), PoolingType_Average, (hidden_dim,)),
Dense(num_labels)
])

当我刚刚使用序列的最后一个元素时,它工作起来没有问题:

Sequential([
Embedding(emb_dim),
sequence.last(Recurrence(LSTM(hidden_dim), go_backwards=False)),
Dense(num_labels)
])

a。在网络定义中添加池是否正确?我设置的形状是否描述了我试图执行的操作?(即,对来自序列中每个样本的LSTM的向量进行平均)b.使用sequence.last时我的输入数据的格式如下(对于1个序列)。是否需要更改以应用平均值池?

1       |x 5:1  |y 1 0 0 0 0
1       |x 414:1
1       |x 8:1

我得到的错误是:

文件/model_training.py",55号线,列车中criteria.placeholder[1]:输入(num_labels,dynamic_Axis=[Axis.default_batch_Axis()])})包装器中的文件"…/anaconda3/envs/cntk-py35/lib/python3.5/site packages/cntk/utils/swig_helper.py",第58行结果=f(*args,**kwds)文件"…/anaconda3/envs/cntk-py35/lib/python3.5/site packages/cntk/ops/functions.py",第449行,位于replace_placeholders中return super(Function,self).replace_placeholders(substitutions)文件"…/anaconda3/envs/cntk-py35/lib/python3.5/site packages/cntk/cntk_py.py",第1246行,位于replace_placeholders中return _cntk_py。函数_占位符_占位符(self、占位符替换)RuntimeError:当前,如果元素操作的操作数有任何动态轴,则这些轴必须与其他操作数的动态轴匹配

池仅适用于静态轴。有一个分支具有sequence.pooling操作,应该在2017年1月底左右在master中可用。您也可以使用递归进行平均池。此示例通过重复使用"习得"的平均池。

最新更新