5cbd3f29e3
Fuzz / Run fuzz harnesses (${{ github.event_name == 'schedule' && 'nightly' || 'smoke' }}) (push) Has been cancelled
Create Releases / call-mac (push) Has been cancelled
Create Releases / call-linux (push) Has been cancelled
Create Releases / call-sdist (push) Has been cancelled
Create Releases / call-win (push) Has been cancelled
Create Releases / call-pyodide (push) Has been cancelled
Windows_No_Exception_CI / build (x64, 3.10) (push) Has been cancelled
Check URLs / build (push) Has been cancelled
Create Releases / Attest CI build artifacts (push) Has been cancelled
Create Releases / Check for Publish release build to pypi (push) Has been cancelled
Create Releases / Check for Publish preview build to test.pypi-weekly (push) Has been cancelled
Create Releases / Publish preview build to test.pypi-weekly (push) Has been cancelled
Create Releases / Check for Publish release build to test.pypi (rc-candidates) (push) Has been cancelled
Create Releases / Publish release build to test.pypi (push) Has been cancelled
Create Releases / Check for Publish preview build to pypi-weekly (push) Has been cancelled
Create Releases / Publish preview build to pypi-weekly (push) Has been cancelled
Create Releases / Publish release build to pypi (push) Has been cancelled
Create Releases / test source distribution (push) Has been cancelled
clang-tidy / clang-tidy (push) Has been cancelled
Lint / Validate SBOM (push) Has been cancelled
Lint / Enforce style (push) Has been cancelled
CI / Test windows-2022, 3.14, External, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, Internal, debug=1, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=1, onnx_ml=1, autogen=1 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=0, onnx_ml=0, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
Pixi CI / Install and lint (ubuntu-24.04-arm) (push) Has been cancelled
Pixi CI / Install and lint (windows-2022) (push) Has been cancelled
Pixi CI / Xcode generator build (push) Has been cancelled
Pixi CI / Install and test (macos-latest, default) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-24.04-arm, default) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-latest, default) (push) Has been cancelled
Pixi CI / Install and test (windows-2022, default) (push) Has been cancelled
Pixi CI / Install and test (macos-latest, oldies) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-24.04-arm, oldies) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-latest, oldies) (push) Has been cancelled
Pixi CI / Install and test (windows-2022, oldies) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Copilot Setup Steps / copilot-setup-steps (push) Has been cancelled
Generate and publish ONNX docs / build (push) Has been cancelled
Generate and publish ONNX docs / deploy (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
# Copyright (c) ONNX Project Contributors
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
from __future__ import annotations
|
|
|
|
import numpy as np
|
|
from numpy.random import RandomState
|
|
|
|
from onnx.reference.op_run import OpRun
|
|
|
|
|
|
def _dropout(
|
|
X: np.ndarray,
|
|
drop_probability: float = 0.5,
|
|
seed: int | None = None,
|
|
training_mode: bool = False,
|
|
return_mask: bool = False,
|
|
) -> tuple[np.ndarray]:
|
|
if drop_probability == 0 or not training_mode:
|
|
if return_mask:
|
|
return X, np.ones(X.shape, dtype=bool)
|
|
return (X,)
|
|
|
|
rnd = RandomState(seed)
|
|
mask = rnd.uniform(0, 1.0, X.shape) >= drop_probability
|
|
scale = 1.0 / (1.0 - drop_probability)
|
|
return (mask * X * scale, mask.astype(bool)) if return_mask else (mask * X * scale,)
|
|
|
|
|
|
class DropoutBase(OpRun):
|
|
def __init__(self, onnx_node, run_params):
|
|
OpRun.__init__(self, onnx_node, run_params)
|
|
self.n_outputs = len(onnx_node.output)
|
|
|
|
def _private_run(
|
|
self,
|
|
X: np.ndarray,
|
|
seed: int | None = None,
|
|
ratio: float = 0.5,
|
|
training_mode: bool = False,
|
|
) -> tuple[np.ndarray]:
|
|
return _dropout(
|
|
X,
|
|
ratio,
|
|
seed=seed,
|
|
return_mask=self.n_outputs == 2,
|
|
training_mode=training_mode,
|
|
)
|
|
|
|
|
|
class Dropout_7(DropoutBase):
|
|
def _run(self, X, ratio=None):
|
|
return self._private_run(X, ratio)
|
|
|
|
|
|
class Dropout_12(DropoutBase):
|
|
def _run(self, *inputs, seed=None):
|
|
X = inputs[0]
|
|
ratio = 0.5 if len(inputs) <= 1 else inputs[1]
|
|
training_mode = False if len(inputs) <= 2 else inputs[2]
|
|
return self._private_run(
|
|
X,
|
|
seed=seed,
|
|
ratio=ratio,
|
|
training_mode=training_mode,
|
|
)
|