1 #include "caffe2/operators/locally_connected_op_util.h" 6 void SetColumnBufferShapeImpl(
9 const int output_image_size,
10 const StorageOrder order,
11 std::vector<int>* column_dims,
12 std::vector<int>* column_transposed_dims,
13 std::vector<int>* column_axes,
14 std::vector<int>* column_transposed_axes) {
15 *column_dims = order == StorageOrder::NCHW
16 ? std::vector<int>{N, kernel_size, output_image_size}
17 : std::vector<int>{N, output_image_size, kernel_size};
18 *column_transposed_dims = order == StorageOrder::NCHW
19 ? std::vector<int>{output_image_size, kernel_size, N}
20 : std::vector<int>{output_image_size, N, kernel_size};
21 *column_axes = order == StorageOrder::NCHW ? std::vector<int>{2, 1, 0}
22 : std::vector<int>{1, 0, 2};
23 if (column_transposed_axes !=
nullptr) {
24 *column_transposed_axes = order == StorageOrder::NCHW
25 ? std::vector<int>{2, 1, 0}
26 : std::vector<int>{1, 0, 2};
30 void SetYBufferShapeImpl(
33 const int output_image_size,
34 const StorageOrder order,
35 std::vector<int>* Y_dims,
36 std::vector<int>* Y_transposed_dims,
37 std::vector<int>* Y_axes,
38 std::vector<int>* Y_transposed_axes) {
39 *Y_dims = order == StorageOrder::NCHW
40 ? std::vector<int>{N, M, output_image_size}
41 : std::vector<int>{N, output_image_size, M};
42 *Y_transposed_dims = order == StorageOrder::NCHW
43 ? std::vector<int>{output_image_size, M, N}
44 : std::vector<int>{output_image_size, N, M};
45 if (Y_axes !=
nullptr) {
46 *Y_axes = order == StorageOrder::NCHW ? std::vector<int>{2, 1, 0}
47 : std::vector<int>{1, 0, 2};
49 if (Y_transposed_axes !=
nullptr) {
50 *Y_transposed_axes = order == StorageOrder::NCHW
51 ? std::vector<int>{2, 1, 0}
52 : std::vector<int>{1, 0, 2};
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...