Coverage for mlprodict/onnxrt/ops_cpu/op_scaler.py: 100%
17 statements
« prev ^ index » next coverage.py v7.1.0, created at 2023-02-04 02:28 +0100
« prev ^ index » next coverage.py v7.1.0, created at 2023-02-04 02:28 +0100
1# -*- encoding: utf-8 -*-
2# pylint: disable=E0203,E1101,C0111
3"""
4@file
5@brief Runtime operator.
6"""
7from ._op import OpRunUnary
10class Scaler(OpRunUnary):
12 atts = {'offset': None, 'scale': None}
14 def __init__(self, onnx_node, desc=None, **options):
15 OpRunUnary.__init__(self, onnx_node, desc=desc,
16 expected_attributes=Scaler.atts,
17 **options)
19 def _run(self, x, attributes=None, verbose=0, fLOG=None): # pylint: disable=W0221
20 return self._run_no_checks_(x, verbose=verbose, fLOG=fLOG)
22 def _run_no_checks_(self, x, verbose=0, fLOG=None): # pylint: disable=W0221
23 if self.inplaces.get(0, False) and x.flags['WRITEABLE']:
24 return self._run_inplace(x)
25 dx = x - self.offset
26 return (dx * self.scale, )
28 def _run_inplace(self, x):
29 x -= self.offset
30 x *= self.scale
31 return (x, )