Skip to content
Snippets Groups Projects
Commit 2deae7a4 authored by dmt's avatar dmt
Browse files

Add settings for construction.

parent acbc5fb1
No related branches found
No related tags found
No related merge requests found
...@@ -11,7 +11,18 @@ class SetFeatures: ...@@ -11,7 +11,18 @@ class SetFeatures:
return self.set_features return self.set_features
def __set__(self, instance, value): def __set__(self, instance, value):
self.set_features = [int(i) for i in value.split(",")] if isinstance(value, list):
try:
self.set_features = [int(i) for i in value]
except ValueError:
# TODO (dmt): Provide proper exception handling
raise Exception("Fehler")
elif isinstance(value, str):
self.set_features = [int(i) for i in value.split(",")]
else:
raise Exception("Fehler")
class CutTimeStamp: class CutTimeStamp:
...@@ -143,7 +154,14 @@ class LearnblockMinimum: ...@@ -143,7 +154,14 @@ class LearnblockMinimum:
return self.learnblock_minimum return self.learnblock_minimum
def __set__(self, instance, value): def __set__(self, instance, value):
self.learnblock_minimum = value if isinstance(value, int):
self.learnblock_minimum = value
elif isinstance(value, str):
try:
self.learnblock_minimu = int(value)
except Exception as error:
print(error)
class MaxCategories: class MaxCategories:
...@@ -154,7 +172,14 @@ class MaxCategories: ...@@ -154,7 +172,14 @@ class MaxCategories:
return self.max_categories return self.max_categories
def __set__(self, instance, value): def __set__(self, instance, value):
self.max_categories = value if isinstance(value, int):
self.max_categories = value
elif isinstance(value, str):
try:
self.max_categories = int(value)
except Exception as error:
print(error)
class SigmaZetaCutoff: class SigmaZetaCutoff:
...@@ -165,7 +190,13 @@ class SigmaZetaCutoff: ...@@ -165,7 +190,13 @@ class SigmaZetaCutoff:
return self.sigma_zeta_cutoff return self.sigma_zeta_cutoff
def __set__(self, instance, value): def __set__(self, instance, value):
self.sigma_zeta_cutoff = value if isinstance(value, float):
self.sigma_zeta_cutoff = value
elif isinstance(value, str):
try:
self.sigma_zeta_cutoff = float(value)
except Exception as error:
print(error)
class MinCategorySize: class MinCategorySize:
...@@ -176,7 +207,14 @@ class MinCategorySize: ...@@ -176,7 +207,14 @@ class MinCategorySize:
return self.min_category_size return self.min_category_size
def __set__(self, instance, value): def __set__(self, instance, value):
self.min_category_size = value if isinstance(value, int):
self.min_category_size = value
elif isinstance(value, str):
try:
self.min_category_size = int(value)
except Exception as error:
print(error)
class MaxModelTargets: class MaxModelTargets:
......
...@@ -78,6 +78,14 @@ class BlockProcessingSettings: ...@@ -78,6 +78,14 @@ class BlockProcessingSettings:
sigma_zeta_cutoff: float = SigmaZetaCutoff() sigma_zeta_cutoff: float = SigmaZetaCutoff()
@dataclass
class ConstructionSettings:
max_categories: int = MaxCategories()
min_category_size: int = MinCategorySize()
max_model_targets: int = MaxModelTargets()
max_target_error: float = MaxTargetError()
@dataclass @dataclass
class DeconstructionSettings: class DeconstructionSettings:
pass pass
...@@ -101,6 +109,11 @@ def specific_settings_factory(settings_type: str): ...@@ -101,6 +109,11 @@ def specific_settings_factory(settings_type: str):
Settings.STACK_ITERATIONS, Settings.STACK_ITERATIONS,
Settings.LEARN_BLOCK_MINIMUM, Settings.LEARN_BLOCK_MINIMUM,
Settings.SIGMA_ZETA_CUTOFF)]), Settings.SIGMA_ZETA_CUTOFF)]),
"construction": starmap(
ConstructionSettings, [(Settings.MAX_CATEGORIES,
Settings.MIN_CATEGORY_SIZE,
Settings.MAX_MODEL_TARGETS,
Settings.MAX_TARGET_ERROR)]),
"deconstruction": starmap( "deconstruction": starmap(
DeconstructionSettings, [()] DeconstructionSettings, [()]
) )
...@@ -116,7 +129,7 @@ def read_settings(path: str): ...@@ -116,7 +129,7 @@ def read_settings(path: str):
configure_main_settings_class(config) configure_main_settings_class(config)
except AttributeError as e: except AttributeError as e:
# TODO (dmt): Implement proper error handling. # TODO (dmt): Implement proper error handling.
pass raise Exception("Fehler")
def configure_main_settings_class(config): def configure_main_settings_class(config):
...@@ -140,3 +153,9 @@ def configure_main_settings_class(config): ...@@ -140,3 +153,9 @@ def configure_main_settings_class(config):
Settings.STACK_ITERATIONS = block_processing["stack_iterations"] Settings.STACK_ITERATIONS = block_processing["stack_iterations"]
Settings.LEARN_BLOCK_MINIMUM = block_processing["learn_block_minimum"] Settings.LEARN_BLOCK_MINIMUM = block_processing["learn_block_minimum"]
Settings.SIGMA_ZETA_CUTOFF = block_processing["sigma_zeta_cutoff"] Settings.SIGMA_ZETA_CUTOFF = block_processing["sigma_zeta_cutoff"]
construction = config["CONSTRUCTION"]
Settings.MAX_TARGET_ERROR = construction["max_target_error"]
Settings.MAX_MODEL_TARGETS = construction["max_model_targets"]
Settings.MAX_CATEGORIES = construction["max_categories"]
Settings.MIN_CATEGORY_SIZE = construction["min_category_size"]
...@@ -17,3 +17,9 @@ max_blocks = 100 ...@@ -17,3 +17,9 @@ max_blocks = 100
stack_iterations = 100 stack_iterations = 100
learn_block_minimum = 1 learn_block_minimum = 1
sigma_zeta_cutoff = 0.8 sigma_zeta_cutoff = 0.8
[CONSTRUCTION]
max_categories = 10
min_category_size = 10
max_model_targets = 10
max_target_error = 0.2
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment