#ifndef CAFFE2_OPERATORS_LOCALLY_CONNECTED_OP_UTIL_H_ #define CAFFE2_OPERATORS_LOCALLY_CONNECTED_OP_UTIL_H_ #include #include "caffe2/core/types.h" namespace caffe2 { namespace lc_op_util { struct ShapeParams { int N; int C; int M; int input_image_size; int output_image_size; int kernel_size; std::vector X_dims; std::vector column_slice_dims; std::vector column_dims; std::vector column_transposed_dims; std::vector column_axes; std::vector Y_dims; std::vector Y_transposed_dims; std::vector Y_axes; }; struct CUDAConvNetShapeParams { int N; int C; int M; int X_H; int X_W; int Y_H; int Y_W; }; CAFFE2_API void SetColumnBufferShape( int N, int kernel_dim, int output_image_size, const std::vector& output_image_dims, StorageOrder order, std::vector* column_slice_dims, std::vector* column_dims, std::vector* column_transposed_dims, std::vector* column_axes); CAFFE2_API void SetYBufferShape( int N, int M, int output_image_size, StorageOrder order, std::vector* Y_dims, std::vector* Y_transposed_dims, std::vector* Y_axes); } // namespace lc_op_util } // namespace caffe2 #endif // CAFFE2_OPERATORS_LOCALLY_CONNECTED_OP_UTIL_H_