| 40 | REGISTER_NO_GRADIENT_OP("OneHot"); |
| 41 | |
| 42 | Status PackGrad(const Scope& scope, const Operation& op, |
| 43 | const std::vector<Output>& grad_inputs, |
| 44 | std::vector<Output>* grad_outputs) { |
| 45 | int N; |
| 46 | TF_RETURN_IF_ERROR(GetNodeAttr(op.node()->attrs(), "N", &N)); |
| 47 | int axis; |
| 48 | TF_RETURN_IF_ERROR(GetNodeAttr(op.node()->attrs(), "axis", &axis)); |
| 49 | |
| 50 | grad_outputs->reserve(N); |
| 51 | auto grad_op = Unstack(scope, grad_inputs[0], N, Unstack::Axis(axis)); |
| 52 | for (const Output& o : grad_op.output) { |
| 53 | grad_outputs->emplace_back(o); |
| 54 | } |
| 55 | return scope.status(); |
| 56 | } |
| 57 | REGISTER_GRADIENT_OP("Pack", PackGrad); |
| 58 | |
| 59 | Status UnpackGrad(const Scope& scope, const Operation& op, |
nothing calls this directly
no test coverage detected