【发布时间】:2018-07-25 13:29:14
【问题描述】:
我有一个包含 65668 个文件的数据集。
我将 Keras 用于 CNN,这些是我的层:
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=True)
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedded_sequences = embedding_layer(sequence_input)
x = Conv1D(128, 5, activation='relu')(embedded_sequences)
x = MaxPooling1D(5)(x)
x = Conv1D(256, 5, activation='relu')(x)
x = MaxPooling1D(5)(x)
x = Flatten()(x)
x = Dense(128, activation='relu')(x)
preds = Dense(len(labels_index), activation='softmax')(x)
第一个嵌入层是在 GloVE.6B.100d 上训练的。 拟合数据:
# fitting the data
model.fit(x_train, y_train, validation_data=(x_val, y_val),
epochs=20, batch_size=128)
MAX_SEQUENCE_LENGTH 是 500。
我正在使用 GPU、Nvidia GeForce 940MX、
作为堆栈的一部分,我收到以下错误:
资源耗尽:分配具有 shape[15318793,100] 的张量并通过分配器 GPU_0_bfc 在 /job:localhost/replica:0/task:0/device:GPU:0 上键入 float 时出现 OOM
我尝试将批量大小减少到 16,甚至 8,但我仍然得到同样的错误。 可能是什么问题?
【问题讨论】:
-
OOM := 内存不足。减少批量大小。
-
我确实将它减少到 8,但我仍然得到了。它需要小多少?
-
tensor with shape[15318793,100]看起来很大,是来自embedding_layer吗? -
是的。当我为该图层设置 trainable='false' 时,减小尺寸时我没有收到错误。但我需要它是可训练的。
-
你自己训练过这个嵌入吗?
标签: tensorflow machine-learning neural-network deep-learning keras