/** * Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*! * \file randomdsa_ops.h * \brief */ #ifndef OPS_BUILT_IN_OP_PROTO_INC_RANDOMDSA_OPS_H_ #define OPS_BUILT_IN_OP_PROTO_INC_RANDOMDSA_OPS_H_ #include #include "graph/operator_reg.h" #include "graph/operator.h" namespace ge { /** * @brief Generate DSA random bit mask for dropout. \n * @par Inputs: include: * @li count:The shape of the input tensor. * @li seed:If seed is set to be non-zero, the random number * generator is seeded by the given seed. Otherwise, it is seeded by a random seed * @li dropout:0-D. Number of bit 1 . \n * @par Attributes: * @li random_algorithm:The default value is "Philox". \n * @par Outputs: * y:Output (1-D) random number using uint data format . \n * @see DSAGenBitMask() */ REG_OP(DSAGenBitMask) .INPUT(count, TensorType({DT_INT64})) .INPUT(seed, TensorType({DT_UINT64})) .INPUT(dropout, TensorType({DT_FLOAT16, DT_FLOAT, DT_BF16})) .OUTPUT(out, TensorType({DT_UINT8})) .ATTR(random_algorithm, String, "Philox") .OP_END_FACTORY_REG(DSAGenBitMask) /** * @brief Generate DSA truncatenormal data in random. \n * @par Inputs: include: * @li count: The shape of the input tensor. * @li seed: If seed is set to be non-zero, the random number * generator is seeded by the given seed. Otherwise, it is seeded by a random seed * @li mean: A Tensor. Must be one of the following types: float16, float32, double * @li stdev: A Tensor. Must be one of the following types: float16, float32, double. \n * @par Attributes: * @li random_algorithm:The default value is "Philox". \n * @par Outputs: * y:Output (1-D) random number using float and bf data format . \n * @see DSARandomTruncatedNormal() */ REG_OP(DSARandomTruncatedNormal) .INPUT(count, TensorType({DT_INT64})) .INPUT(seed, TensorType({DT_UINT64})) .INPUT(mean, TensorType({DT_FLOAT16, DT_FLOAT, DT_BF16})) .INPUT(stdev, TensorType({DT_FLOAT16, DT_FLOAT, DT_BF16})) .OUTPUT(out, TensorType({DT_FLOAT16, DT_FLOAT32, DT_BF16})) .ATTR(random_algorithm, String, "Philox") .OP_END_FACTORY_REG(DSARandomTruncatedNormal) /** * @brief Generate DSA normal data in random. \n * @par Inputs: include: * @li count: The shape of the input tensor. * @li seed: If seed is set to be non-zero, the random number * generator is seeded by the given seed. Otherwise, it is seeded by a random seed * @li mean: A Tensor. Must be one of the following types: float16, float32, double * @li stdev: A Tensor. Must be one of the following types: float16, float32, double. \n * @par Attributes: * @li random_algorithm:The default value is "Philox". \n * @par Outputs: * y:Output (1-D) random number using float and bf data format . \n * @see DSARandomNormal() */ REG_OP(DSARandomNormal) .INPUT(count, TensorType({DT_INT64})) .INPUT(seed, TensorType({DT_UINT64})) .INPUT(mean, TensorType({DT_FLOAT16, DT_FLOAT, DT_BF16})) .INPUT(stdev, TensorType({DT_FLOAT16, DT_FLOAT, DT_BF16})) .OUTPUT(out, TensorType({DT_FLOAT16, DT_FLOAT32, DT_BF16})) .ATTR(random_algorithm, String, "Philox") .OP_END_FACTORY_REG(DSARandomNormal) /** * @brief Generate DSA uniform data in random. \n * @par Inputs: include: * @li count: The shape of the input tensor. * @li seed: If seed is set to be non-zero, the random number * generator is seeded by the given seed. Otherwise, it is seeded by a random seed * @li low: A Tensor. Must be one of the following types: int, float, bf * @li high: A Tensor. Must be one of the following types: int, float, bf. \n * @par Attributes: * @li random_algorithm:The default value is "Philox". \n * @par Outputs: * y:Output (1-D) random number using float int and bf data format . \n * @see DSARandomUniform() */ REG_OP(DSARandomUniform) .INPUT(count, TensorType({DT_INT64})) .INPUT(seed, TensorType({DT_UINT64})) .INPUT(low, TensorType({DT_BF16, DT_FLOAT16, DT_FLOAT, DT_INT32, DT_INT64, DT_UINT32, DT_UINT64})) .INPUT(high, TensorType({DT_BF16, DT_FLOAT16, DT_FLOAT, DT_INT32, DT_INT64, DT_UINT32, DT_UINT64})) .OUTPUT(out, TensorType({DT_BF16, DT_FLOAT16, DT_FLOAT, DT_INT32, DT_INT64, DT_UINT32, DT_UINT64})) .ATTR(random_algorithm, String, "Philox") .OP_END_FACTORY_REG(DSARandomUniform) } #endif // OPS_BUILT_IN_OP_PROTO_INC_RANDOMDSA_OPS_H