我正在尝试构建一个用于对 ATIS 数据集进行分类的 LSTM 模型。
从一个未定义大小 N 的句子,我生成一个上下文窗口词嵌入矩阵。这就是我需要以我的模型为食的东西,但我不知道如何做到这一点。
当我将输入层定义为:
def build_lstm(input_var=None):
l_in = lasagne.layers.InputLayer(shape=(None, 1, None, None), input_var=input_var)
l_hid = l_lstm = lasagne.layers.LSTMLayer(l_in, num_units=300)
l_out = lasagne.layers.DenseLayer(l_hid, num_units=127, nonlinearity=lasagne.nonlinearities.softmax)
return l_out
我得到:
TypeError: unsupported operand type(s) for *: 'NoneType' and 'NoneType'
如果我在 l_in 声明中定义输入形状,它会起作用,例如:
l_in = lasagne.layers.InputLayer(shape=(None, 1, 30, 30), input_var=input_var)
关键是每个句子都有不同的大小,从而导致了不同形状的上下文窗口词嵌入矩阵。我能做些什么?