Следующий код постоянно приводит к утечке памяти в моей системе.
import numpy as np
import tensorflow
from tensorflow import keras
from tensorflow.keras import layers
import gc
import tracemalloc
if __name__ == "__main__":
tracemalloc.start()
while True:
inputs = keras.Input(shape=(10,))
out = layers.Dense(1)(inputs)
model = keras.Model(inputs=inputs, outputs=out)
model.compile(optimizer="adam", loss="mse")
train = np.random.rand(1000,10)
label = np.random.rand(1000)
model.fit(train, label)
gc.collect()
current, peak = tracemalloc.get_traced_memory()
print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB")
Добавление сборок мусора между ними не помогает. Я что-то делаю здесь не так, или мне следует сообщить об этой проблеме в репозитории тензорного потока?
Я использую самую последнюю версию тензорного потока 2.3.0
с версией keras 2.3.1
, но я начал работать над этим минимальным примером после У меня возникли аналогичные проблемы в тензорном потоке 1.12.0
и 1.13.1