You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

prim_maths.cc 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * Copyright 2019 Huawei Technologies Co., Ltd
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include "pipeline/static_analysis/prim.h"
  17. #include "operator/ops.h"
  18. #include "pipeline/static_analysis/utils.h"
  19. #include "pipeline/static_analysis/param_validator.h"
  20. #include "common/utils.h"
  21. namespace mindspore {
  22. namespace abstract {
  23. AbstractBasePtr InferImplMinOrMaxGrad(const AnalysisEnginePtr &, const PrimitivePtr &primitive,
  24. const AbstractBasePtrList &args_spec_list) {
  25. // Inputs: three tensors.
  26. const std::string op_name = primitive->name();
  27. CheckArgsSize(op_name, args_spec_list, 3);
  28. auto input_x = CheckArg<AbstractTensor>(op_name, args_spec_list, 0);
  29. auto input_y = CheckArg<AbstractTensor>(op_name, args_spec_list, 1);
  30. auto dout = CheckArg<AbstractTensor>(op_name, args_spec_list, 2);
  31. (void)CheckTensorsDTypeSame({input_x, input_y, dout}, {kInt, kUInt, kFloat},
  32. op_name + "evaluator three inputs should be %s");
  33. AbstractBasePtr dx = input_x->Broaden();
  34. AbstractBasePtr dy = input_y->Broaden();
  35. return std::make_shared<AbstractTuple>(AbstractBasePtrList({dx, dy}));
  36. }
  37. } // namespace abstract
  38. } // namespace mindspore