将Numpy阵列馈送到CNTK LSTM模型

时间:2017-07-29 17:24:55

标签: python arrays numpy deep-learning cntk

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

在这个例子中,有一个feeding sequences with Numpy的讨论,我希望能解决我的问题。然而,该示例处理图像序列而不是可变长度的单词序列。在示例的情况下,我们最终会得到n元素的张量,每个元素都是3 x 32 x 32,我们可以设置一个期望这些维度的输入变量。然而,在每个序列具有不同长度的单词序列的情况下,该示例分解。

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

1 个答案:

答案 0 :(得分:1)

您可能正在寻找:

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)