1.数据集切分后,索引操作导致重复存储
-
index_train, index_test
划分数据时,每次gkf.split()
都会创建新的 numpy 数组副本(x_forward_feature_train = x_forward_feature[index_train, :, :]
)。 -
解决方案:用
np.take()
避免重复复制-
使用
view
或memory-mapped
文件,而不是复制数据:x_forward_feature_train = np.take(x_forward_feature, index_train, axis=0)
-
使用
del
及时释放不用的变量:del x_forward_feature, x_reverse_feature, y_forward_feature, y_rev
-
2.调整batch_size
BATCH_SIZE = min(64, max(16, int(1024 * 1024 * 2 / (input_shape_x_forward[0] * input_shape_x_forward[1]))))
3.模型创建完毕后手动清理显存
import gc
cnn.fit()
#模型训练................
K.clear_session()
gc.collect()