pypi 0.1.4 업데이트
keras 의 메모리 누수를 어느정도 해결했으나 아직 완벽히 해결이 되지 않음
입력 데이터를 tensor 형태로 변환해주어 넣는 방식으로 전환
This commit is contained in:
jung-geun
2023-07-21 15:20:24 +09:00
parent 23176bafb2
commit 99b1de3f82
9 changed files with 96 additions and 68 deletions

View File

@@ -38,6 +38,7 @@ class Optimizer:
mutation_swarm: float = 0,
np_seed: int = None,
tf_seed: int = None,
random_state: tuple = None,
particle_min: float = -5,
particle_max: float = 5,
):
@@ -66,6 +67,9 @@ class Optimizer:
self.random_state = np.random.get_state()
if random_state is not None:
np.random.set_state(random_state)
self.model = model # 모델 구조
self.loss = loss # 손실함수
self.n_particles = n_particles # 파티클 개수
@@ -113,6 +117,8 @@ class Optimizer:
print(f"mutation swarm : {mutation_swarm * 100}%")
gc.collect()
tf.keras.backend.reset_uids()
tf.keras.backend.clear_session()
def __del__(self):
del self.model
@@ -129,6 +135,8 @@ class Optimizer:
del self.g_best_
del self.avg_score
gc.collect()
tf.keras.backend.reset_uids()
tf.keras.backend.clear_session()
def _encode(self, weights):
"""
@@ -304,7 +312,8 @@ class Optimizer:
tf.summary.scalar("accuracy", local_score[1], step=0)
del local_score
gc.collect()
tf.keras.backend.reset_uids()
tf.keras.backend.clear_session()
print(
f"initial g_best_score : {self.g_best_score[0] if self.renewal == 'acc' else self.g_best_score[1]}"
)
@@ -454,7 +463,9 @@ class Optimizer:
f.write(", ")
else:
f.write("\n")
# gc.collect()
# tf.keras.backend.reset_uids()
# tf.keras.backend.clear_session()
part_pbar.refresh()
if check_point is not None:
@@ -463,6 +474,8 @@ class Optimizer:
self._check_point_save(f"./{save_path}/{self.day}/ckpt-{epoch}")
gc.collect()
tf.keras.backend.reset_uids()
tf.keras.backend.clear_session()
except KeyboardInterrupt:
print("Ctrl + C : Stop Training")