Files
Reinforced-Learning-Godot/rl/Lib/site-packages/onnx/reference/ops/op_sigmoid.py
2024-10-30 22:14:35 +01:00

28 lines
716 B
Python

# Copyright (c) ONNX Project Contributors
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations
import numpy as np
from onnx.reference.ops._op import OpRunUnaryNum
def sigmoid(x): # type: ignore
if x > 0:
return 1 / (1 + np.exp(-x))
return np.exp(x) / (1 + np.exp(x))
class Sigmoid(OpRunUnaryNum):
def __init__(self, onnx_node, run_params): # type: ignore
OpRunUnaryNum.__init__(self, onnx_node, run_params)
self.vf = np.vectorize(sigmoid)
def _run(self, X): # type: ignore
if len(X.shape) == 0:
return (sigmoid(X).astype(X.dtype),)
if X.size == 0:
return (X,)
return (self.vf(X).astype(X.dtype),)