【问题标题】:Primitives used to convert LSTM NDL to Python in CNTKCNTK 中用于将 LSTM NDL 转换为 Python 的原语
【发布时间】:2017-01-24 20:15:44
【问题描述】:

我正在尝试将 LSTM NDL 配置转换为 Python,但找不到对以下 NDL 原语的支持

  • 延迟 - 如何在网络中稍后定义的变量的延迟中传递参数?例如对于窥视孔 LSTM,稍后定义单元状态变量,例如 c_t,但需要延迟才能获得 c_t_minus_1 单元状态,例如 c_t_minus_1 = Delay(c_t)。但是,Python 不允许先使用变量(例如 c_t)然后再定义。

  • RowStack、RowSlice – 是否有这些原语的替代品?如果不是如何在python中实现它们?我们可以对变量进行操作,就好像它们是 numpy 数组一样?

  • DiagTime 与 ElementTimes – 对于向量元素乘法,它们之间有什么区别吗? python也支持DiagTimes吗?

  • 参数初始化 - 如何在 python 中初始化文件中的参数并将 computeGradient 设置为 false。我找不到任何支持或示例。

【问题讨论】:

    标签: python lstm cntk


    【解决方案1】:

    从 CNTK 团队找到答案 - https://github.com/Microsoft/CNTK/wiki/Port-LSTM-NDL-primitives-to-Python

    1. 您需要使用 placeholder_variable,然后再调用 replace_placeholders。这是一个简单的使用示例:https://github.com/Microsoft/CNTK/wiki/Implement-an-attention-mechanism

    2. 使用拼接

    3. 使用逐元素乘法(a.k.a *)

    4. 使用常量。您可以通过 numpy 数组指定初始值。有很多方法可以将文本(或其他)文件加载到 numpy 数组中。 np.loadtxt 应该可以,但我还没有尝试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      相关资源
      最近更新 更多