我最近一直在研究神經網路,但每次我嘗試編譯模型時,我都會收到一個 SIGKILL,通過查看活動監視器,它來自記憶體錯誤。我的資料非常大,但這不是問題的一部分,因為我嘗試取其中的一小部分,但仍然出現相同的錯誤。這是我正在使用的代碼:
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)
我已經為模型嘗試了許多不同的結構和不同的批次大小/時期,但我仍然收到此錯誤。在這方面的任何幫助將不勝感激。
uj5u.com熱心網友回復:
您在模型中添加 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')
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/367974.html
上一篇:基于布爾列計算具有滾動最大值的列
