将 numpy 数组馈送到 CNTK LSTM 模型



我正在寻找是否有办法将序列数据作为 Numpy 数组提供给 CTNK 中定义的文本 LSTM 模型。我的数据集中的每个实例都是一个映射回单词的整数序列,每个序列的长度都不同。似乎可以将他们的原始文本数据转换为 CTF 格式,并通过创建一个生成小批量的reader函数将这些数据提供给模型,如本例所示。但是,我想知道是否有办法将 Numpy 数组馈送到同一模型。

在这个例子的后面,有一个关于使用 Numpy 喂养序列的讨论,我希望这能解决我的问题。但是,该示例处理图像序列,而不是可变长度的单词序列。在这个例子中,我们最终会得到一个n个元素的张量,每个元素都是3 x 32 x 32的,我们可以设置一个期望这些维度的输入变量。但是,对于每个序列具有不同长度的单词序列,此示例将分解。

任何关于CTNK和Numpy之间基于文本的LSTM/RNN的互操作的帮助将不胜感激。

您可能正在寻找:

x = cntk.sequence.input_variable(shape=())

下面是一个示例小程序,演示了它如何使用可变序列长度:

import numpy as np
import cntk
# define the model
x = cntk.sequence.input_variable(shape=())
z = cntk.sequence.last(x)
# define the data
a = [[1,2,3], [4,5], [6,7,8,9], [0]]
b = [np.array(i, dtype=np.float32) for i in a]
# evaluate
res = z.eval({x: b})
print(res)

最新更新