我想看看是否有办法将序列数据作为 Numpy 数组提供给 CTNK 中定义的文本 LSTM 模型。我数据集中的每个实例都是一个映射回单词的整数序列,每个序列的长度都不同。似乎可以将他们的原始文本数据转换为 CTF 格式,并通过创建生成小批量的 reader
函数将此数据提供给模型,如 this 所示。例子。但是,我想知道是否有办法将 Numpy 数组提供给同一个模型。
在此示例的下方,讨论了 feeding sequences with Numpy ,我希望这能解决我的问题。但是,该示例处理的是图像序列而不是可变长度的单词序列。在示例的情况下,我们将得到一个 n
元素的张量,每个元素都是 3 x 32 x 32
,我们可以设置一个输入变量期望这些维度。然而,在每个序列具有不同长度的单词序列的情况下,这个例子就失效了。
对于基于文本的 LSTM/RNN 的 CTNK 和 Numpy 之间互操作的任何帮助,我们将不胜感激。
最佳答案
您可能正在寻找:
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)
关于python - 将 Numpy 数组提供给 CNTK LSTM 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392053/