Caffe2 - C++ API
A deep learning, cross platform ML framework
locally_connected_op_util.cc
1 #include "caffe2/operators/locally_connected_op_util.h"
2 
3 namespace caffe2 {
4 namespace lc_op_util {
5 
6 void SetColumnBufferShapeImpl(
7  const int N,
8  const int kernel_size,
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};
27  }
28 }
29 
30 void SetYBufferShapeImpl(
31  const int N,
32  const int M,
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};
48  }
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};
53  }
54 }
55 
56 } // namespace lc_op_util
57 } // namespace caffe2
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...