/** * This program is free software, you can redistribute it and/or modify it. * Copyright (c) 2025 Huawei Technologies Co., Ltd. * This file is a part of the CANN Open Software. * Licensed under CANN Open Software License Agreement Version 2.0 (the "License"). * Please refer to the License for details. You may not use this file except in compliance with the License. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. * See LICENSE in the root of the software repository for the full text of the License. */ /*! * \file causal_conv1d_infershape.cpp * \brief */ #include "register/op_impl_registry.h" #include "error_log.h" using namespace ge; namespace ops { static constexpr int64_t IDX_0 = 0; static ge::graphStatus InferShapeCausalConv1d(gert::InferShapeContext* context) { // OPS_LOG_D(context->GetNodeName(), "Begin to do InferShapeCausalConv1d"); // get input shapes const gert::Shape* xShape = context->GetInputShape(IDX_0); OP_CHECK_NULL_WITH_CONTEXT(context, xShape); // get output shapes gert::Shape* yShape = context->GetOutputShape(IDX_0); OP_CHECK_NULL_WITH_CONTEXT(context, yShape); // 填充输出shape大小 auto xShapeSize = xShape->GetDimNum(); yShape->SetDimNum(xShapeSize); for (size_t i = 0; i < xShapeSize; i++) { int64_t dim = xShape->GetDim(i); yShape->SetDim(i, dim); } // OPS_LOG_D(context->GetNodeName(), "End to do InferShapeCausalConv1d"); return GRAPH_SUCCESS; } IMPL_OP_INFERSHAPE(CausalConv1d).InferShape(InferShapeCausalConv1d); } // namespace ops