add_model_resnet18 #31

Merged
brian merged 47 commits from add_model_resnet18 into main 2024-04-03 21:04:23 +02:00
13 changed files with 187 additions and 0 deletions
Showing only changes of commit 08c5c14da6 - Show all commits
+13
View File
@@ -0,0 +1,13 @@
from __future__ import annotations
from .angle import AngleData
from .contact import ContactData
from .distance import DistanceData
from .framing import FramingData
from .information_value import InformationValueData
from .modality_color import ModalityColorData
from .modality_depth import ModalityDepthData
from .modality_lighting import ModalityLightingData
from .point_of_view import PointOfViewData
from .salience import SalienceData
from .visual_syntax import VisualSyntaxData
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class AngleData(DataModel):
high: float
eye_level: float
low: float
+8
View File
@@ -0,0 +1,8 @@
from __future__ import annotations
from .data_model import DataModel
class ContactData(DataModel):
offer: float
demand: float
+59
View File
@@ -0,0 +1,59 @@
from __future__ import annotations
import random
from pydantic import BaseModel
from pydantic import ValidationError
class DataModel(BaseModel):
@classmethod
def classname(cls) -> str:
"""Return classname."""
return cls.__name__
@classmethod
def list_fields(cls) -> list[str]:
"""List options that are stored as attributes."""
return list(cls.model_fields.keys())
@classmethod
def from_random(cls):
"""Instantiate with random numbers."""
kwargs = {field: random.random() for field in cls.list_fields()}
return cls(**kwargs)
@classmethod
def from_choice(cls, option: str):
"""Instantiate from choice."""
if option is None:
raise ValidationError()
assert isinstance(option, str), 'option is not a string'
allowed_options_list = cls.list_fields()
assert option in allowed_options_list, \
f"{option} is not among allowed fields {allowed_options_list}"
kwargs = {field: 0 for field in cls.list_fields()}
kwargs[option] = 1
return cls(**kwargs)
def __repr__(self) -> str:
model_dict = self.model_dump()
model_repr_str = f"{self.classname()}("
model_repr_str += ', '.join([
f"{field}={value:.3f}"
for field, value
in model_dict.items()
])
model_repr_str += ')'
return model_repr_str
def highest_score_field(self) -> str:
"""Return name of field with highest score."""
model_dict = self.model_dump()
return max(model_dict, key=lambda k: model_dict[k])
def highest_score_value(self) -> float:
"""Return value of field with highest score."""
model_dict = self.model_dump()
return max(model_dict.values())
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class DistanceData(DataModel):
long: float
medium: float
close: float
+10
View File
@@ -0,0 +1,10 @@
from __future__ import annotations
from .data_model import DataModel
class FramingData(DataModel):
frame_lines: float
empty_space: float
colour_contrast: float
form_contrast: float
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class InformationValueData(DataModel):
given_new: float
ideal_real: float
central_marginal: float
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class ModalityColorData(DataModel):
high: float
medium: float
low: float
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class ModalityDepthData(DataModel):
high: float
medium: float
low: float
+9
View File
@@ -0,0 +1,9 @@
from __future__ import annotations
from .data_model import DataModel
class ModalityLightingData(DataModel):
high: float
medium: float
low: float
+8
View File
@@ -0,0 +1,8 @@
from __future__ import annotations
from .data_model import DataModel
class PointOfViewData(DataModel):
frontal: float
oblique: float
+11
View File
@@ -0,0 +1,11 @@
from __future__ import annotations
from .data_model import DataModel
class SalienceData(DataModel):
size: float
colour: float
tone: float
form: float
positioning: float
+24
View File
@@ -0,0 +1,24 @@
from __future__ import annotations
from .data_model import DataModel
class VisualSyntaxData(DataModel):
non_transactional_action: float
non_transactional_reaction: float
unidirectional_transactional_action: float
unidirectional_transactional_reaction: float
bidirectional_transactional_action: float
bidirectional_transactional_reaction: float
conversion: float
speech_process: float
classification_overt_taxonomy: float
analytical_exhaustive: float
analytical_disarranged: float
analytical_temporal: float
analytical_distributed: float
analytical_topological: float
analytical_exploded: float
analytical_inclusive: float
symbolic_suggestive: float
symbolic_attributive: float