训练模型时如何修复内存错误?
How to fix Memory Error while training model?
我最近一直在研究神经网络,但每次我尝试编译模型时,我都会收到一个 SIGKILL,通过查看 Activity 监视器,它来自内存错误。我的数据非常大,但这不是问题的一部分,因为我尝试使用其中的一小部分,但我仍然遇到同样的错误。这是我正在使用的代码:
f = gzip.GzipFile('Data_x.npy.gz', "r")
datax = np.load(f)[:5, :, :]
f.close()
f = gzip.GzipFile('Data_y.npy.gz', "r")
datay = np.load(f)[:5, :, :]
f.close()
f = None
model = Sequential(
[
#Conv1D(32, 3, input_shape=datax.shape, activation="relu"),
Flatten(input_shape=datax.shape),
Dense(750, activation='relu'),
Dense(750, activation='relu'),
Dense(2, activation='sigmoid')
]
)
model.compile(optimizer=Adam(learning_rate=0.1), loss="binary_crossentropy", metrics=['accuracy'])
model1 = model.fit(x=datax, y=datay, batch_size=5, epochs=5, shuffle=True, verbose=2)
我已经为模型和不同的批次尝试了许多不同的结构 sizes/epochs 但我仍然遇到此错误。如果您对此有任何帮助,我们将不胜感激。
您在模型中添加了 dropout 层。
Dropout 是一种在训练过程中忽略随机选择的神经元的技术。他们是随机“辍学”的。这意味着它们对下游神经元激活的贡献在前向传递中被暂时移除,并且任何权重更新都不会应用于反向传递中的神经元。
model = Sequential(
[
#Conv1D(32, 3, input_shape=datax.shape, activation="relu"),
Flatten(input_shape=datax.shape),
Dense(750, activation='relu'),
Dropout(0.2),
Dense(750, activation='relu'),
Dropout(0.2),
Dense(2, activation='sigmoid')
]
我最近一直在研究神经网络,但每次我尝试编译模型时,我都会收到一个 SIGKILL,通过查看 Activity 监视器,它来自内存错误。我的数据非常大,但这不是问题的一部分,因为我尝试使用其中的一小部分,但我仍然遇到同样的错误。这是我正在使用的代码:
f = gzip.GzipFile('Data_x.npy.gz', "r")
datax = np.load(f)[:5, :, :]
f.close()
f = gzip.GzipFile('Data_y.npy.gz', "r")
datay = np.load(f)[:5, :, :]
f.close()
f = None
model = Sequential(
[
#Conv1D(32, 3, input_shape=datax.shape, activation="relu"),
Flatten(input_shape=datax.shape),
Dense(750, activation='relu'),
Dense(750, activation='relu'),
Dense(2, activation='sigmoid')
]
)
model.compile(optimizer=Adam(learning_rate=0.1), loss="binary_crossentropy", metrics=['accuracy'])
model1 = model.fit(x=datax, y=datay, batch_size=5, epochs=5, shuffle=True, verbose=2)
我已经为模型和不同的批次尝试了许多不同的结构 sizes/epochs 但我仍然遇到此错误。如果您对此有任何帮助,我们将不胜感激。
您在模型中添加了 dropout 层。
Dropout 是一种在训练过程中忽略随机选择的神经元的技术。他们是随机“辍学”的。这意味着它们对下游神经元激活的贡献在前向传递中被暂时移除,并且任何权重更新都不会应用于反向传递中的神经元。
model = Sequential(
[
#Conv1D(32, 3, input_shape=datax.shape, activation="relu"),
Flatten(input_shape=datax.shape),
Dense(750, activation='relu'),
Dropout(0.2),
Dense(750, activation='relu'),
Dropout(0.2),
Dense(2, activation='sigmoid')
]