Keras 一个热编码的RAM问题

Keras 一个热编码的RAM问题,keras,google-colaboratory,recurrent-neural-network,one-hot-encoding,Keras,Google Colaboratory,Recurrent Neural Network,One Hot Encoding,我知道有好几篇关于这个的文章,但最近我在为双向LSTM进行热编码时遇到了一些大文本的RAM问题 通过在线查看,我发现有其他方法可以通过sklearn或在keras中引入嵌入层来解决这个问题,这就是我在这里尝试的: model = Sequential() model.add((OneHot(input_dim=vocab_size, input_length= seq_length))) model.add(Bidirectional(LSTM(rnn_size, activation=&quo

我知道有好几篇关于这个的文章,但最近我在为双向LSTM进行热编码时遇到了一些大文本的RAM问题

通过在线查看,我发现有其他方法可以通过sklearn或在keras中引入嵌入层来解决这个问题,这就是我在这里尝试的:

model = Sequential()
model.add((OneHot(input_dim=vocab_size, input_length= seq_length)))
model.add(Bidirectional(LSTM(rnn_size, activation="relu"),input_shape=(seq_length, vocab_size)))
这里的一切似乎都很好,但我需要拟合我的模型(model.fit)以及典型的输入和输出参数。我试图将这些变量随机化,这时RAM真的爆炸了

X = np.random.random((len(sequences), seq_length, vocab_size))
y = np.random.randint(2, size=(len(sequences), vocab_size))

有没有关于如何防止这种情况的建议(无论是在最后一步还是在整个过程中)?

不要使用
model.fit
,而是使用
model.train\u batch
这样你就不必加载整个数据集了。你只需要一批32或64个你选择的

model.train\u on\u batch需要为批中的每个项目创建一个循环,为epoch创建另一个循环

我的视频动作识别代码

这段代码在colab上,它实现了我在这里讨论的相同技术