mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
Fixed Tensor documentation formatting.
This commit is contained in:
parent
15f3d9d272
commit
c694be1214
@ -1630,81 +1630,81 @@ dimension in RowMajor layout.
|
|||||||
|
|
||||||
For example, given the following input tensor:
|
For example, given the following input tensor:
|
||||||
|
|
||||||
Eigen::Tensor<float, 2, DataLayout> tensor(3,4);
|
Eigen::Tensor<float, 2, DataLayout> tensor(3,4);
|
||||||
tensor.setValues({{0.0f, 1.0f, 2.0f, 3.0f},
|
tensor.setValues({{0.0f, 1.0f, 2.0f, 3.0f},
|
||||||
{4.0f, 5.0f, 6.0f, 7.0f},
|
{4.0f, 5.0f, 6.0f, 7.0f},
|
||||||
{8.0f, 9.0f, 10.0f, 11.0f}});
|
{8.0f, 9.0f, 10.0f, 11.0f}});
|
||||||
|
|
||||||
cout << "tensor: " << endl << tensor << endl;
|
cout << "tensor: " << endl << tensor << endl;
|
||||||
=>
|
=>
|
||||||
tensor:
|
tensor:
|
||||||
0 1 2 3
|
0 1 2 3
|
||||||
4 5 6 7
|
4 5 6 7
|
||||||
8 9 10 11
|
8 9 10 11
|
||||||
|
|
||||||
Six 2x2 patches can be extracted and indexed using the following code:
|
Six 2x2 patches can be extracted and indexed using the following code:
|
||||||
|
|
||||||
Eigen::Tensor<float, 3, DataLayout> patch;
|
Eigen::Tensor<float, 3, DataLayout> patch;
|
||||||
Eigen::array<ptrdiff_t, 2> patch_dims;
|
Eigen::array<ptrdiff_t, 2> patch_dims;
|
||||||
patch_dims[0] = 2;
|
patch_dims[0] = 2;
|
||||||
patch_dims[1] = 2;
|
patch_dims[1] = 2;
|
||||||
patch = tensor.extract_patches(patch_dims);
|
patch = tensor.extract_patches(patch_dims);
|
||||||
for (int k = 0; k < 6; ++k) {
|
for (int k = 0; k < 6; ++k) {
|
||||||
cout << "patch index: " << k << endl;
|
cout << "patch index: " << k << endl;
|
||||||
for (int i = 0; i < 2; ++i) {
|
for (int i = 0; i < 2; ++i) {
|
||||||
for (int j = 0; j < 2; ++j) {
|
for (int j = 0; j < 2; ++j) {
|
||||||
if (DataLayout == ColMajor) {
|
if (DataLayout == ColMajor) {
|
||||||
cout << patch(i, j, k) << " ";
|
cout << patch(i, j, k) << " ";
|
||||||
} else {
|
} else {
|
||||||
cout << patch(k, i, j) << " ";
|
cout << patch(k, i, j) << " ";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
}
|
}
|
||||||
cout << endl;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
This code results in the following output when the data layout is ColMajor:
|
This code results in the following output when the data layout is ColMajor:
|
||||||
|
|
||||||
patch index: 0
|
patch index: 0
|
||||||
0 1
|
0 1
|
||||||
4 5
|
4 5
|
||||||
patch index: 1
|
patch index: 1
|
||||||
4 5
|
4 5
|
||||||
8 9
|
8 9
|
||||||
patch index: 2
|
patch index: 2
|
||||||
1 2
|
1 2
|
||||||
5 6
|
5 6
|
||||||
patch index: 3
|
patch index: 3
|
||||||
5 6
|
5 6
|
||||||
9 10
|
9 10
|
||||||
patch index: 4
|
patch index: 4
|
||||||
2 3
|
2 3
|
||||||
6 7
|
6 7
|
||||||
patch index: 5
|
patch index: 5
|
||||||
6 7
|
6 7
|
||||||
10 11
|
10 11
|
||||||
|
|
||||||
This code results in the following output when the data layout is RowMajor:
|
This code results in the following output when the data layout is RowMajor:
|
||||||
(NOTE: the set of patches is the same as in ColMajor, but are indexed differently).
|
(NOTE: the set of patches is the same as in ColMajor, but are indexed differently).
|
||||||
|
|
||||||
patch index: 0
|
patch index: 0
|
||||||
0 1
|
0 1
|
||||||
4 5
|
4 5
|
||||||
patch index: 1
|
patch index: 1
|
||||||
1 2
|
1 2
|
||||||
5 6
|
5 6
|
||||||
patch index: 2
|
patch index: 2
|
||||||
2 3
|
2 3
|
||||||
6 7
|
6 7
|
||||||
patch index: 3
|
patch index: 3
|
||||||
4 5
|
4 5
|
||||||
8 9
|
8 9
|
||||||
patch index: 4
|
patch index: 4
|
||||||
5 6
|
5 6
|
||||||
9 10
|
9 10
|
||||||
patch index: 5
|
patch index: 5
|
||||||
6 7
|
6 7
|
||||||
10 11
|
10 11
|
||||||
|
|
||||||
### `<Operation> extract_image_patches(const Index patch_rows, const Index patch_cols, const Index row_stride, const Index col_stride, const PaddingType padding_type)`
|
### `<Operation> extract_image_patches(const Index patch_rows, const Index patch_cols, const Index row_stride, const Index col_stride, const PaddingType padding_type)`
|
||||||
|
|
||||||
@ -1736,28 +1736,30 @@ sizes:
|
|||||||
*) columns: 5
|
*) columns: 5
|
||||||
*) batch: 7
|
*) batch: 7
|
||||||
|
|
||||||
Tensor<float, 4> tensor(2,3,5,7);
|
Tensor<float, 4> tensor(2,3,5,7);
|
||||||
Tensor<float, 4, RowMajor> tensor_row_major = tensor.swap_layout();
|
Tensor<float, 4, RowMajor> tensor_row_major = tensor.swap_layout();
|
||||||
|
|
||||||
2x2 image patches can be extracted and indexed using the following code:
|
2x2 image patches can be extracted and indexed using the following code:
|
||||||
|
|
||||||
*) 2D patch: ColMajor (patch indexed by second-to-last dimension)
|
*) 2D patch: ColMajor (patch indexed by second-to-last dimension)
|
||||||
Tensor<float, 5> twod_patch;
|
|
||||||
twod_patch = tensor.extract_image_patches<2, 2>();
|
Tensor<float, 5> twod_patch;
|
||||||
// twod_patch.dimension(0) == 2
|
twod_patch = tensor.extract_image_patches<2, 2>();
|
||||||
// twod_patch.dimension(1) == 2
|
// twod_patch.dimension(0) == 2
|
||||||
// twod_patch.dimension(2) == 2
|
// twod_patch.dimension(1) == 2
|
||||||
// twod_patch.dimension(3) == 3*5
|
// twod_patch.dimension(2) == 2
|
||||||
// twod_patch.dimension(4) == 7
|
// twod_patch.dimension(3) == 3*5
|
||||||
|
// twod_patch.dimension(4) == 7
|
||||||
|
|
||||||
*) 2D patch: RowMajor (patch indexed by the second dimension)
|
*) 2D patch: RowMajor (patch indexed by the second dimension)
|
||||||
Tensor<float, 5, RowMajor> twod_patch_row_major;
|
|
||||||
twod_patch_row_major = tensor_row_major.extract_image_patches<2, 2>();
|
Tensor<float, 5, RowMajor> twod_patch_row_major;
|
||||||
// twod_patch_row_major.dimension(0) == 7
|
twod_patch_row_major = tensor_row_major.extract_image_patches<2, 2>();
|
||||||
// twod_patch_row_major.dimension(1) == 3*5
|
// twod_patch_row_major.dimension(0) == 7
|
||||||
// twod_patch_row_major.dimension(2) == 2
|
// twod_patch_row_major.dimension(1) == 3*5
|
||||||
// twod_patch_row_major.dimension(3) == 2
|
// twod_patch_row_major.dimension(2) == 2
|
||||||
// twod_patch_row_major.dimension(4) == 2
|
// twod_patch_row_major.dimension(3) == 2
|
||||||
|
// twod_patch_row_major.dimension(4) == 2
|
||||||
|
|
||||||
## Special Operations
|
## Special Operations
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user