NdArraySequence
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.
Các lớp con gián tiếp đã biết |
Dãy các phần tử của mảng N chiều.
Một NdArraySequence
được sử dụng để duyệt NdArray
trong một chiều nhất định và truy cập từng phần tử của nó. Ví dụ: cho ma trận nxm
trên trục [x, y]
, các phần tử được lặp theo thứ tự sau:
x 0 y 0 , x 0 y 1 , ..., x 0 y m-1 , x 1 y 0 , x 1 y 1 , ..., x n-1 y m-1
Phương pháp công cộng
trừu tượng NdArraySequence <T> | asSlices () Trả về mỗi phần tử dưới dạng một slice mới. |
khoảng trống trừu tượng | forEachIndexed (người tiêu dùng BiConsumer<long[], T>) Truy cập từng phần tử của lần lặp này và tọa độ tương ứng của chúng. |
Phương pháp kế thừa
Từ giao diện java.lang.Iterable khoảng trống trừu tượng | forEach (Người tiêu dùng<? super T> arg0) |
Trình vòng lặp trừu tượng<T> | trình lặp () |
Bộ chia trừu tượng<T> | bộ chia () |
Phương pháp công cộng
tóm tắt công khai NdArraySequence <T> asSlices ()
Trả về mỗi phần tử dưới dạng một slice mới.
Không giống như các bộ sưu tập Java thông thường, các phần tử của NdArraySequence
là tạm thời, tức là các phiên bản NdArray
mới được phân bổ cho mỗi lần lặp. Để cải thiện hiệu suất, phiên bản tương tự có thể được tái chế để xem tất cả các phần tử của chuỗi này bằng cách sử dụng DataBufferWindow
.
Tuy nhiên, trong một số trường hợp, tốt nhất nên tắt các tối ưu hóa đó để đảm bảo rằng mỗi phần tử được trả về là một phần mới của mảng ban đầu. Ví dụ: nếu một hoặc nhiều phần tử được truy cập phải nằm ngoài phạm vi của phép lặp trình tự, thì asSlices()
đảm bảo rằng tất cả các phần tử được trình tự trả về đều là các phiên bản duy nhất.
final List<IntNdArray> vectors = new ArrayList<>();
IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));
ndArray.elements(0).forEach(e -> vectors::add); // Not safe, as `e` might always be the same recycled instance
ndArray.elements(0).asSlices().forEach(e -> vectors::add); // Safe, each `e` is a distinct NdArray instance
Trả lại
- một chuỗi trả về từng phần tử được lặp lại dưới dạng một lát cắt mới
khoảng trống trừu tượng công khai choEachIndexed (người tiêu dùng BiConsumer<long[], T>)
Truy cập từng phần tử của lần lặp này và tọa độ tương ứng của chúng.
Quan trọng: phương thức tiêu dùng không nên giữ tham chiếu đến tọa độ vì chúng có thể thay đổi và sử dụng lại trong quá trình lặp để cải thiện hiệu suất.
Thông số
người tiêu dùng | phương thức gọi cho từng phần tử |
---|
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,["# NdArraySequence\n\npublic interface **NdArraySequence** \n\n|---|---|---|\n| Known Indirect Subclasses [FastElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/FastElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e, [SingleElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/SingleElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e, [SlicingElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/SlicingElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------| | [FastElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/FastElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e | A sequence recycling the same `NdArray` instance when iterating its elements | | [SingleElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/SingleElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e | A sequence of one single element | | [SlicingElementSequence](/jvm/api_docs/java/org/tensorflow/ndarray/impl/sequence/SlicingElementSequence)\\\u003cT, U extends [NdArray](/jvm/api_docs/java/org/tensorflow/ndarray/NdArray)\\\u003cT\\\u003e\\\u003e | A sequence creating a new `NdArray` instance (slice) for each element of an iteration | |||\n\nA sequence of elements of an N-dimensional array.\n\nAn `NdArraySequence` is used to traverse an `NdArray` in a given dimension\nand visit each of its elements. For example, given a `n x m` matrix on the `[x, y]` axes,\nelements are iterated in the following order:\n\nx~0~y~0~, x~0~y~1~, ..., x~0~y~m-1~, x~1~y~0~, x~1~y~1~, ..., x~n-1~y~m-1~\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### Public Methods\n\n|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract [NdArraySequence](/jvm/api_docs/java/org/tensorflow/ndarray/NdArraySequence)\\\u003cT\\\u003e | [asSlices](/jvm/api_docs/java/org/tensorflow/ndarray/NdArraySequence#asSlices())() Returns each element as a new slice. |\n| abstract void | [forEachIndexed](/jvm/api_docs/java/org/tensorflow/ndarray/NdArraySequence#forEachIndexed(java.util.function.BiConsumer\u003clong[], T\u003e))(BiConsumer\\\u003clong\\[\\], T\\\u003e consumer) Visit each elements of this iteration and their respective coordinates. |\n\n### Inherited Methods\n\nFrom interface java.lang.Iterable \n\n|---------------------------|-------------------------------------|\n| abstract void | forEach(Consumer\\\u003c? super T\\\u003e arg0) |\n| abstract Iterator\\\u003cT\\\u003e | iterator() |\n| abstract Spliterator\\\u003cT\\\u003e | spliterator() |\n\nPublic Methods\n--------------\n\n#### public abstract [NdArraySequence](/jvm/api_docs/java/org/tensorflow/ndarray/NdArraySequence)\\\u003cT\\\u003e\n**asSlices**\n()\n\nReturns each element as a new slice.\n\nUnlike conventional Java collections, elements of a `NdArraySequence` are transient, i.e. new `NdArray`\ninstances are allocated for each iteration. To improve performance, the same instance can be recycled to view\nall elements of this sequence, using a [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow).\n\nIn some cases though, it might be preferable to disable such optimizations to ensure that each element returned is a\nnew slice of the original array. For example, if one or more elements visited must live beyond the scope of the sequence\niteration, `asSlices()` makes sure that all elements returned by the sequence are unique instances.\n\n final List\u003cIntNdArray\u003e vectors = new ArrayList\u003c\u003e();\n IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));\n ndArray.elements(0).forEach(e -\u003e vectors::add); // Not safe, as `e` might always be the same recycled instance\n ndArray.elements(0).asSlices().forEach(e -\u003e vectors::add); // Safe, each `e` is a distinct NdArray instance\n \n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n##### Returns\n\n- a sequence that returns each elements iterated as a new slice \n\n##### See Also\n\n- [DataBufferWindow](/jvm/api_docs/java/org/tensorflow/ndarray/buffer/DataBufferWindow) \n\n#### public abstract void\n**forEachIndexed**\n(BiConsumer\\\u003clong\\[\\], T\\\u003e consumer)\n\nVisit each elements of this iteration and their respective coordinates.\n\n*Important: the consumer method should not keep a reference to the coordinates\nas they might be mutable and reused during the iteration to improve performance.*\n\n\u003cbr /\u003e\n\n##### Parameters\n\n| consumer | method to invoke for each elements |\n|----------|------------------------------------|"]]