PickleGzInstance: Replace implicit load by load/free methods

This commit is contained in:
2021-04-06 19:19:12 -05:00
parent f495297168
commit 856b595d5e
6 changed files with 28 additions and 29 deletions

View File

@@ -125,7 +125,7 @@ class Component:
x_combined: Dict = {}
y_combined: Dict = {}
for instance in instances:
assert isinstance(instance, Instance)
instance.load()
for sample in instance.training_data:
xy = self.sample_xy(instance, sample)
if xy is None:
@@ -137,6 +137,7 @@ class Component:
y_combined[cat] = []
x_combined[cat] += x_sample[cat]
y_combined[cat] += y_sample[cat]
instance.free()
return x_combined, y_combined
def fit(
@@ -209,8 +210,10 @@ class Component:
def evaluate(self, instances: List[Instance]) -> List:
ev = []
for instance in instances:
instance.load()
for sample in instance.training_data:
ev += [self.sample_evaluate(instance, sample)]
instance.free()
return ev
def sample_evaluate(

View File

@@ -104,10 +104,12 @@ class DynamicConstraintsComponent(Component):
def fit(self, training_instances: List["Instance"]) -> None:
collected_cids = set()
for instance in training_instances:
instance.load()
for sample in instance.training_data:
if getattr(sample, self.attr) is None:
continue
collected_cids |= getattr(sample, self.attr)
instance.free()
self.known_cids.clear()
self.known_cids.extend(sorted(collected_cids))
super().fit(training_instances)