Source code for pymoose.computation.operations

from dataclasses import dataclass
from typing import Dict
from typing import Optional
from typing import Tuple
from typing import Union

from pymoose.computation import types as ty
from pymoose.computation import values


[docs]@dataclass class OpSignature: input_types: Dict[str, ty.ValueType] return_type: ty.ValueType
[docs]@dataclass(init=False) class Operation: name: str inputs: Dict[str, str] placement_name: str signature: OpSignature
[docs] @classmethod def identifier(cls): return cls.__name__
@property def return_type(self): return self.signature.return_type
[docs]@dataclass class AddNOperation(Operation): pass
[docs]@dataclass class IdentityOperation(Operation): pass
[docs]@dataclass class InputOperation(Operation): pass
[docs]@dataclass class OutputOperation(Operation): tag: str
[docs]@dataclass class DecryptOperation(Operation): pass
[docs]@dataclass class ConstantOperation(Operation): value: values.Value
[docs]@dataclass class ConcatenateOperation(Operation): axis: int
[docs]@dataclass class MaximumOperation(Operation): pass
[docs]@dataclass class AddOperation(Operation): pass
[docs]@dataclass class SubOperation(Operation): pass
[docs]@dataclass class MulOperation(Operation): pass
[docs]@dataclass class LessOperation(Operation): pass
[docs]@dataclass class GreaterOperation(Operation): pass
[docs]@dataclass class AbsOperation(Operation): pass
[docs]@dataclass class CastOperation(Operation): pass
[docs]@dataclass class DotOperation(Operation): pass
[docs]@dataclass class DivOperation(Operation): pass
[docs]@dataclass class InverseOperation(Operation): pass
[docs]@dataclass class ExpandDimsOperation(Operation): axis: Tuple[int]
[docs]@dataclass class SqueezeOperation(Operation): axis: Optional[Union[int, Tuple[int]]]
[docs]@dataclass class OnesOperation(Operation): pass
[docs]@dataclass class ZerosOperation(Operation): pass
[docs]@dataclass class SumOperation(Operation): axis: Optional[Union[int, Tuple[int]]]
[docs]@dataclass class MeanOperation(Operation): axis: Optional[Union[int, Tuple[int]]]
[docs]@dataclass class ExpOperation(Operation): pass
[docs]@dataclass class SigmoidOperation(Operation): pass
[docs]@dataclass class ReluOperation(Operation): pass
[docs]@dataclass class LogOperation(Operation): pass
[docs]@dataclass class Log2Operation(Operation): pass
[docs]@dataclass class SoftmaxOperation(Operation): axis: Optional[Tuple[int]] upmost_index: int
[docs]@dataclass class ArgmaxOperation(Operation): axis: Optional[Tuple[int]] upmost_index: int
[docs]@dataclass class SqrtOperation(Operation): pass
[docs]@dataclass class TransposeOperation(Operation): pass
[docs]@dataclass class ReshapeOperation(Operation): pass
[docs]@dataclass class AtLeast2DOperation(Operation): to_column_vector: bool
[docs]@dataclass class ShapeOperation(Operation): pass
[docs]@dataclass class IndexAxisOperation(Operation): axis: int index: int
[docs]@dataclass class SelectOperation(Operation): axis: int
[docs]@dataclass class SliceOperation(Operation): begin: int end: int
[docs]@dataclass class StridedSliceOperation(Operation): slices: Optional[Tuple[slice]]
[docs]@dataclass class BitwiseOrOperation(Operation): pass
[docs]@dataclass class BitwiseAndOperation(Operation): pass
[docs]@dataclass class MuxOperation(Operation): pass
[docs]@dataclass class LoadOperation(Operation): pass
[docs]@dataclass class SaveOperation(Operation): pass