我们需要一个GPU系统来训练深度学习模型吗?



我创建了一个带有预训练的 100D 手套嵌入的编码器-解码器模型,以创建一个抽象的文本摘要器。数据集包含4300文章及其摘要数据。文章的词汇量48549,摘要的词汇量19130Total memory size of input, output variables = 7.5Gb

以下是基本的编码器-解码器模型:

latent_dim = 1024
encoder_inputs = Input(shape=(max_x_len,))
emb1 = Embedding(len(x_voc), 100, weights=[x_voc], trainable = False)(encoder_inputs)
encoder = LSTM(latent_dim, return_state=True)
encoder_outputs, state_h, state_c = encoder(emb1)
decoder_inputs = Input(shape=(None,))
emb2 = Embedding(len(y_voc), 100, weights=[y_voc], trainable = False)(decoder_inputs)
decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
decoder_outputs0, _, _ = decoder_lstm(emb2, initial_state=[state_h, state_c])
decoder_dense = Dense(len(y_voc), activation='softmax')
decoder_outputs = decoder_dense(decoder_outputs0)
model = Model([encoder_inputs, decoder_inputs], decoder_outputs)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

当我训练整个数据时,spyder 会消耗 99% 的内存并且系统停止。

我的系统配置如下:

OS - windows 10 (64-bit)
Ram - 8Gb
Processor - Intel(R) Core(TM) i5-3470
ROM - 300Gb

进一步我想——

  • 向模型添加更多数据和图层
  • 添加注意力层
  • 实现伯特

请提出解决方案或合适的系统配置。

这个代码存储库包含多个文本摘要的实现,它优化了学习参数,以便在谷歌 colab 上轻松高效地运行,我认为这可能会有所帮助。

它还在博客系列中详细介绍了这些模型是如何构建的。

希望这是有帮助的。

执行深度学习程序和简单的ML程序是有区别的。 在深度处理中,我们实际上是在处理张量(意味着最小的向量(,因此为了处理深度模型,我们需要一些可以有效地处理张量的处理单元。可能有一些专用系统适用于神经网络程序。 因此,为了执行神经网络模型,我们需要GPU或TPU来处理从一层神经元传递到另一层神经元的数据。 CPU 可以工作,但 CPU 并非专用于神经网络模型。CPU被分配在整个系统上工作,基本上计算程序在CPU上执行得更快。 希望这对你有帮助。

最新更新