for i in range(0,len(dictStats)):
pkb_ips = dictStats[i:i + 1].index.map(str)[0]
model_path = file_url + model_url + '/model/' + pkb_ips + '.h5'
sc_path = file_url + model_url + '/sc/' + pkb_ips + '.save'
std_path = file_url + model_url + '/std/std.json'
if os.path.exists(model_path) and os.path.exists(sc_path) and os.path.exists(std_path):
regressor = load_model(model_path)
sc = joblib.load(sc_path)
with open(std_path , "r") as f:
std_list = json.load(f)
else:
continue
std = std_list[pkb_ips]
NewDF = dictStats[i:i + 1]
NewDF = NewDF.T
testDF = NewDF
test_mean = testDF.mean()
testDF = testDF.rolling(5).mean().iloc[4:, :]
testDF.fillna(value=test_mean, inplace=True)
real_data = testDF.values
real_data = np.concatenate((np.zeros((21 - len(real_data), 1)), real_data), axis=0)
real_data[np.isnan(real_data)] = 0
real_data = real_data[20:, :][0][0]
timestep = 20
inputs = testDF.iloc[0:20, :].values
inputs = inputs.reshape(-1, 1)
inputs = sc.transform(inputs)
X_test = []
for i in range(timestep, len(inputs)+1):
X_test.append(inputs[i - timestep:i, 0])
X_test = np.array(X_test)
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
predicted_data = regressor.predict(X_test)
predicted_data = sc.inverse_transform(predicted_data)[0][0]
lower_limit_2std = predicted_data - 2 * std
upper_limit_2std = predicted_data + 2 * std
lower_limit_4std = predicted_data - 4 * std
upper_limit_4std = predicted_data + 4 * std
result = True if real_data > upper_limit_2std or predicted_data < lower_limit_2std else False
del regressor
del sc
del predicted_data
K.clear_session()
tf.compat.v1.reset_default_graph()
gc.collect()
我在程序中添加了很多释放内存的方法 但是“predicted_data = regressor.predict(X_test)”行中生成的内存无法释放 请问是什么原因或者有其他解决办法吗 这是跟踪内存的结果
142 494.5 MiB 0.4 MiB 10 predicted_data = regressor.predict(X_test)
143 494.5 MiB 0.0 MiB 10 predicted_data = sc.inverse_transform(predicted_data)[0][0] # to get the original scale
152 494.5 MiB 0.0 MiB 10 del regressor
153 494.5 MiB 0.0 MiB 10 del sc
154 494.5 MiB 0.0 MiB 10 del predicted_data
155 494.4 MiB -0.1 MiB 10 K.clear_session() # 清除 Keras 會話
156 494.4 MiB 0.0 MiB 10 tf.compat.v1.reset_default_graph() # 重置 TensorFlow 預設圖
157 494.4 MiB 0.0 MiB 10 gc.collect()
释放由 Predicted_data = regressor.predict(X_test) 行生成的原始内存