AllNeighbors

class hybrid_learning.fuzzy_logic.predicates.custom_ops.AllNeighbors(in_key, *, kernel_size=17, **other_setts)[source]

Bases: TorchOperation

Given a mask of truth values representing the output of a formula apply average pooling. Formally, the output mask \((\text{AllNeighbors}(p))_{p\in\text{mask}}\) for a mask representing the output of the predicate \(M\) is defined as

\[\text{AllNeighbors}(p) \coloneqq \left( \forall p_2\in\text{Neighborhood}(p)\colon M(p_2) \right)\]

with the choice \(\forall=\text{mean}\) and

\[(p_2\in\text{Neighborhood}(p)) \coloneqq ( \|p-p_2\|_1 \leq \lfloor\frac{1}{2}(\text{kernel\_size} - 1)\rfloor ) \;.\]

To ensure that neighborhoods are centralized around their output pixel, even kernel sizes are reduced by 1. A zero padding ensures that the returned mask is of the same size as the input.

Public Data Attributes:

SYMB

The string symbol of this class (override for sub-classes).

ARITY

The arity of the operation.

settings

Settings to reproduce the instance.

setting_defaults

Defaults used for settings.

kernel_size

The width of the square representing a neighborhood.

Inherited from : py: class:Merge

SYMB

The string symbol of this class (override for sub-classes).

ARITY

The arity of the operation.

IS_COMMUTATIVE

Whether instances are equivalent to ones with permuted in_keys.

is_variadic

Whether the instance is variadic.

settings

Settings to reproduce the instance.

setting_defaults

Defaults used for settings.

pretty_op_symb

Name of the operation symbol suitable for filenames etc.

children

The input keys which are child operations.

all_children

All children operations in the flattened computational tree, sorted depth first.

consts

The constant string keys in the input keys.

operation_keys

The list of keys used for this parent operation in original order (constants and children output keys).

all_in_keys

All string input keys both of self and of all child operations.

all_out_keys

Output keys of self and all child operations.

Inherited from : py: class:DictTransform

settings

Settings to reproduce the instance.

Inherited from : py: class:Transform

IDENTITY_CLASS

The identity class or classes for composition / addition.

settings

Settings to reproduce the instance.

Public Methods:

torch_operation(mask)

Apply average pooling to single input and return mask of the same size.

Inherited from : py: class:TorchOperation

operation(annotation_vals)

Calculate the predicate output.

Inherited from : py: class:Merge

to_infix_notation([sort_key, ...])

Return an infix str encoding equal for differently sorted operations.

to_str(**infix_notation_kwargs)

Alias for to_infix_notation().

to_pretty_str(**infix_notation_kwargs)

Same as to_str() but using pretty operation names suitable for filenames etc.

to_repr([settings, defaults, sort_key, ...])

Return str representation which can be used to reproduce and compare the instance.

treerecurse_replace_keys(**replace_map)

Return a new formula with all occurences of variables in replace_map replaced and else identical settings.

treerecurse(fun)

Apply the given function recursively to this and all children instances.

apply_to(annotations[, keep_keys])

Apply this operation to the annotations dict.

variadic_apply_to(annotations)

Return the result of operation on the values/items of a mapping or sequence of arbitrary length.

operation(annotation_vals)

Calculate the predicate output.

Inherited from : py: class:DictTransform

apply_to(annotations[, keep_keys])

Apply this operation to the annotations dict.

Inherited from : py: class:Transform

apply_to(annotations[, keep_keys])

Apply this operation to the annotations dict.

Special Methods:

__init__(in_key, *[, kernel_size])

Init.

Inherited from : py: class:Merge

__init__(in_key, *[, kernel_size])

Init.

__str__()

Return str(self).

__repr__()

Call to_repr() without sorting.

__eq__(other)

Two merge operations are considered equal, if their normalized representations coincide.

__copy__()

Return a deep copy of self using settings.

__call__(annotations[, keep_keys])

Call method modifying a given dictionary.

Inherited from : py: class:DictTransform

__call__(annotations[, keep_keys])

Call method modifying a given dictionary.

Inherited from : py: class:Transform

__repr__()

Call to_repr() without sorting.

__eq__(other)

Two merge operations are considered equal, if their normalized representations coincide.

__copy__()

Return a deep copy of self using settings.

__add__(other)

Return a flat composition of self with other.

__radd__(other)

Return a flat composition of other and self.

__call__(annotations[, keep_keys])

Call method modifying a given dictionary.


Parameters
__init__(in_key, *, kernel_size=17, **other_setts)[source]

Init.

Hand over input keys either as str or as a Merge operation of str.

Parameters
  • in_keys – sequence of either Merge operation instances or strings with placeholders for the input keys

  • out_key – key for the output of this operation; used to init out_key

  • overwrite – on call, whether to overwrite the value at out_key in the given dict if the key already exists; raise if key exists and overwrite is true; saved in overwrite.

  • replace_none – if not None, the value to replace any None values with; see replace_none

  • symb – override the SYMB for this instance

  • keep_keys – intermediate output keys to add to call output; see keep_keys

  • cache_duplicates – whether outputs of children with identical keys should be cached and reused; see cache_duplicates

  • _variadic – the preferred way to specify this argument is variadic_(); see there for details

  • in_key (Union[str, Merge]) –

  • kernel_size (int) –

torch_operation(mask)[source]

Apply average pooling to single input and return mask of the same size.

Parameters

mask (Tensor) –

Return type

Tensor

ARITY: int = 1

The arity of the operation. -1 means unlimited number of arguments possible.

SYMB: str = 'AllNeighbors'

The string symbol of this class (override for sub-classes).

property kernel_size: int

The width of the square representing a neighborhood.

property setting_defaults

Defaults used for settings.

property settings: Dict[str, Any]

Settings to reproduce the instance. (Mind that in_keys must be expanded! For direct reproduction use copy.)