簡體   English   中英

如何在訓練 model 時修復 Memory 錯誤?

[英]How to fix Memory Error while training model?

我最近一直在研究神經網絡,但每次我嘗試編譯 model 時,我都會得到一個 SIGKILL,通過查看活動監視器,它來自 memory 錯誤。 我的數據非常大,但這不是問題的一部分,因為我嘗試提取其中的一小部分,但仍然遇到相同的錯誤。 這是我正在使用的代碼:

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)

我已經為 model 和不同的批量大小/時期嘗試了許多不同的結構,但我仍然得到這個錯誤。 在這件事上的任何幫助將不勝感激。

您在 model 中添加 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')
    ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM