| 30 | } |
| 31 | |
| 32 | SmallVector<size_t> init_shape(_megdnn_tensor_in src, const int param_axis) { |
| 33 | auto dims = src.layout.shape; |
| 34 | const int rank = src.layout.ndim; |
| 35 | const int axis = CanonicalAxis(param_axis, rank); |
| 36 | const size_t dim = dims[axis]; |
| 37 | const size_t N = SizeToAxis(axis, dims); |
| 38 | const size_t D = SizeOutAxis(axis, dims, rank); |
| 39 | |
| 40 | return {N, dim, D}; |
| 41 | } |
| 42 | } // anonymous namespace |
| 43 | |
| 44 | void SoftmaxForwardImpl::exec( |
no test coverage detected