Tensorflow:LSTM和维度子集上的卷积(避免取消堆叠?)

Tensorflow:LSTM和维度子集上的卷积(避免取消堆叠?),tensorflow,Tensorflow,我正在为NLP实现一个相当标准的LSTM模型,其中我使用预训练的嵌入来初始化每个单词。对于每个字向量,我想连接字符序列的LSTM编码(对于该字)和字符序列的卷积编码(对于该字) 我的输入张量的形状为:[批量大小,最大单词序列长度,最大字符序列长度,字符字母表大小]。如果我沿着维度0展开,我会得到形状的张量[max word sequence length,max char sequence length,alphabet size],我可以很容易地在其上运行LSTM/1D卷积。然而,这明显减慢了

我正在为NLP实现一个相当标准的LSTM模型,其中我使用预训练的嵌入来初始化每个单词。对于每个字向量,我想连接字符序列的LSTM编码(对于该字)和字符序列的卷积编码(对于该字)

我的输入张量的形状为:[批量大小,最大单词序列长度,最大字符序列长度,字符字母表大小]。如果我沿着维度0展开,我会得到形状的张量[max word sequence length,max char sequence length,alphabet size],我可以很容易地在其上运行LSTM/1D卷积。然而,这明显减慢了图形的创建,并且模型训练似乎也明显减慢

以下是LSTM编码的代码:

chars = tf.unstack(chars, axis=0)
lengths = tf.unstack(lengths, axis=0)

lstm_word_embeddings = []
for i, (char, length) in enumerate(zip(chars, lengths)):
    reuse = i != 0
    embedding = lstm_encoder(char, length, embed_dim, scope=scope, reuse=reuse)
    lstm_word_embeddings.append(embedding)
lstm_word_embeddings = tf.stack(lstm_word_embeddings, axis=0)
有更好的方法吗