Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
dòng chảy căng:: ôi:: Concat thưa thớt
#include <sparse_ops.h>
Nối danh sách SparseTensor
dọc theo kích thước được chỉ định.
Bản tóm tắt
Phép nối liên quan đến các phiên bản dày đặc của các tensor thưa thớt này. Người ta giả định rằng mỗi đầu vào là một SparseTensor
có các phần tử được sắp xếp theo số thứ nguyên tăng dần.
Tất cả hình dạng của đầu vào phải khớp nhau, ngoại trừ kích thước concat. Danh sách indices
, values
và shapes
phải có cùng độ dài.
Hình dạng đầu ra giống hệt với đầu vào', ngoại trừ dọc theo kích thước concat, trong đó nó là tổng kích thước của đầu vào dọc theo kích thước đó.
Các phần tử đầu ra sẽ được sử dụng để duy trì thứ tự sắp xếp theo số thứ nguyên tăng dần.
Hoạt động này chạy trong thời gian O(M log M)
, trong đó M
là tổng số giá trị không trống trên tất cả các đầu vào. Điều này là do nhu cầu sắp xếp nội bộ để ghép nối hiệu quả trên một chiều tùy ý.
Ví dụ: nếu concat_dim = 1
và đầu vào là
sp_inputs[0]: shape = [2, 3]
[0, 2]: "a"
[1, 0]: "b"
[1, 1]: "c"
sp_inputs[1]: shape = [2, 4]
[0, 1]: "d"
[0, 2]: "e"
thì đầu ra sẽ là
shape = [2, 7]
[0, 2]: "a"
[0, 4]: "d"
[0, 5]: "e"
[1, 0]: "b"
[1, 1]: "c"
Về mặt đồ họa, điều này tương đương với việc làm
[ a] concat [ d e ] = [ a d e ]
[b c ] [ ] [b c ]
Lập luận:
- phạm vi: Một đối tượng Phạm vi
- chỉ số: 2-D. Các chỉ số của mỗi đầu vào
SparseTensor
. - giá trị: 1-D. Các giá trị không trống của mỗi
SparseTensor
. - hình dạng: 1-D. Hình dạng của mỗi
SparseTensor
. - concat_dim: Kích thước để nối theo. Phải nằm trong phạm vi [-rank, xếp hạng), trong đó xếp hạng là số thứ nguyên trong mỗi
SparseTensor
đầu vào.
Trả về:
-
Output
ra_chỉ số đầu ra: 2-D. Các chỉ số của SparseTensor
được nối. -
Output
trị đầu ra đầu ra: 1-D. Các giá trị không trống của SparseTensor
được nối. -
Output
đầu ra_shape: 1-D. Hình dạng của SparseTensor
được nối.
Thuộc tính công khai
Chức năng công cộng
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-26 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-26 UTC."],[],[],null,["# tensorflow::ops::SparseConcat Class Reference\n\ntensorflow::ops::SparseConcat\n=============================\n\n`#include \u003csparse_ops.h\u003e`\n\nConcatenates a list of `SparseTensor` along the specified dimension.\n\nSummary\n-------\n\nConcatenation is with respect to the dense versions of these sparse tensors. It is assumed that each input is a `SparseTensor` whose elements are ordered along increasing dimension number.\n\n[All](/versions/r2.1/api_docs/cc/class/tensorflow/ops/all#classtensorflow_1_1ops_1_1_all) inputs' shapes must match, except for the concat dimension. The `indices`, `values`, and `shapes` lists must have the same length.\n\nThe output shape is identical to the inputs', except along the concat dimension, where it is the sum of the inputs' sizes along that dimension.\n\nThe output elements will be resorted to preserve the sort order along increasing dimension number.\n\nThis op runs in `O(M log M)` time, where `M` is the total number of non-empty values across all inputs. This is due to the need for an internal sort in order to concatenate efficiently across an arbitrary dimension.\n\nFor example, if `concat_dim = 1` and the inputs are \n\n```scdoc\nsp_inputs[0]: shape = [2, 3]\n[0, 2]: \"a\"\n[1, 0]: \"b\"\n[1, 1]: \"c\"\n\nsp_inputs[1]: shape = [2, 4]\n[0, 1]: \"d\"\n[0, 2]: \"e\"\n```\n\n\u003cbr /\u003e\n\nthen the output will be \n\n```text\nshape = [2, 7]\n[0, 2]: \"a\"\n[0, 4]: \"d\"\n[0, 5]: \"e\"\n[1, 0]: \"b\"\n[1, 1]: \"c\"\n```\n\n\u003cbr /\u003e\n\nGraphically this is equivalent to doing \n\n```ini\n[ a] concat [ d e ] = [ a d e ]\n[b c ] [ ] [b c ]\n```\n\n\u003cbr /\u003e\n\nArguments:\n\n- scope: A [Scope](/versions/r2.1/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- indices: 2-D. Indices of each input `SparseTensor`.\n- values: 1-D. Non-empty values of each `SparseTensor`.\n- shapes: 1-D. Shapes of each `SparseTensor`.\n- concat_dim: Dimension to concatenate along. Must be in range \\[-rank, rank), where rank is the number of dimensions in each input `SparseTensor`.\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output_indices: 2-D. Indices of the concatenated `SparseTensor`.\n- [Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output_values: 1-D. Non-empty values of the concatenated `SparseTensor`.\n- [Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output_shape: 1-D. Shape of the concatenated `SparseTensor`.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [SparseConcat](#classtensorflow_1_1ops_1_1_sparse_concat_1a50aa275ec5a88496fd4e99f0f1003616)`(const ::`[tensorflow::Scope](/versions/r2.1/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::InputList](/versions/r2.1/api_docs/cc/class/tensorflow/input-list#classtensorflow_1_1_input_list)` indices, ::`[tensorflow::InputList](/versions/r2.1/api_docs/cc/class/tensorflow/input-list#classtensorflow_1_1_input_list)` values, ::`[tensorflow::InputList](/versions/r2.1/api_docs/cc/class/tensorflow/input-list#classtensorflow_1_1_input_list)` shapes, int64 concat_dim)` ||\n\n| ### Public attributes ||\n|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_sparse_concat_1a8db5a398751bcf0e460c5032ae1ab292) | [Operation](/versions/r2.1/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output_indices](#classtensorflow_1_1ops_1_1_sparse_concat_1a79b9cef174b8488e90f52907d6d64a0f) | `::`[tensorflow::Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n| [output_shape](#classtensorflow_1_1ops_1_1_sparse_concat_1ae3130991367ac10382b9a6a310b1eff5) | `::`[tensorflow::Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n| [output_values](#classtensorflow_1_1ops_1_1_sparse_concat_1a626bd96bc86fb8ecddbd8cbb7a6828cf) | `::`[tensorflow::Output](/versions/r2.1/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output_indices\n\n```scdoc\n::tensorflow::Output output_indices\n``` \n\n### output_shape\n\n```scdoc\n::tensorflow::Output output_shape\n``` \n\n### output_values\n\n```scdoc\n::tensorflow::Output output_values\n``` \n\nPublic functions\n----------------\n\n### SparseConcat\n\n```gdscript\n SparseConcat(\n const ::tensorflow::Scope & scope,\n ::tensorflow::InputList indices,\n ::tensorflow::InputList values,\n ::tensorflow::InputList shapes,\n int64 concat_dim\n)\n```"]]