@frozen
public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
extension ShapedArraySlice: RandomAccessCollection, MutableCollection
extension ShapedArraySlice: CustomStringConvertible
extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
extension ShapedArraySlice: CustomReflectable
extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
extension ShapedArraySlice: Equatable where Scalar: Equatable
extension ShapedArraySlice: Hashable where Scalar: Hashable
extension ShapedArraySlice: Codable where Scalar: Codable
Một lát liền kề của một phiên bản ShapedArray
hoặc ShapedArraySlice
.
ShapedArraySlice
cho phép vận hành nhanh chóng, hiệu quả trên các lát liền kề của các phiên bản ShapedArray
. Các phiên bản ShapedArraySlice
không có bộ lưu trữ riêng. Thay vào đó, họ cung cấp chế độ xem về bộ lưu trữ ShapedArray
cơ sở của họ. ShapedArraySlice
có thể biểu diễn hai loại lát cắt khác nhau: mảng phần tử và mảng con.
Mảng phần tử là các phần tử thứ nguyên phụ của ShapedArray
: thứ hạng của chúng nhỏ hơn thứ hạng của cơ sở. Các lát mảng phần tử thu được bằng cách lập chỉ mục một thể hiện ShapedArray
với chỉ mục Int32
số ít.
Ví dụ:
var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3])
// `matrix` represents [[0, 1], [2, 3]].
let element = matrix[0]
// `element` is a `ShapedArraySlice` with shape [2]. It is an element
// array, specifically the first element in `matrix`: [0, 1].
matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8])
// The second element in `matrix` has been mutated.
// `matrix` now represents [[0, 1, 4, 8]].
Mảng con là một phạm vi liền kề của các phần tử trong ShapedArray
. Thứ hạng của một mảng con giống như thứ hạng của mảng cơ sở, nhưng thứ nguyên chính của nó là số lượng của phạm vi lát cắt. Các lát cắt mảng con thu được bằng cách lập chỉ mục một ShapedArray
với Range<Int32>
đại diện cho một phạm vi phần tử (trong chiều thứ nguyên chính). Các phương thức như prefix(:)
và suffix(:)
lập chỉ mục nội bộ với một phạm vi cũng tạo ra mảng con.
Ví dụ:
let zeros = ShapedArray(repeating: 0, shape: [3, 2])
var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6))
// `zeros` represents [[0, 0], [0, 0], [0, 0]].
// `matrix` represents [[0, 1], [2, 3], [4, 5]].
let subarray = matrix.prefix(2)
// `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice
// of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]].
matrix[0..<2] = zeros.prefix(2)
// The first 2 elements in `matrix` have been mutated.
// `matrix` now represents [[0, 0], [0, 0], [4, 5]].
Số chiều của mảng.
Tuyên ngôn
public var rank: Int { get }
Hình dạng của mảng.
Tuyên ngôn
public var shape: [Int] { get }
Tổng số lượng vô hướng trong mảng.
Tuyên ngôn
public var scalarCount: Int { get }
Tạo
ShapedArraySlice
với hình dạng được chỉ định và các đại lượng vô hướng liền kề theo thứ tự hàng lớn.điều kiện tiên quyết
Số lượng vô hướng phải bằng tích các kích thước của hình.Tuyên ngôn
public init(shape: [Int], scalars: [Scalar])
Tạo một
ShapedArraySlice
với hình dạng và chuỗi vô hướng được chỉ định theo thứ tự hàng lớn.điều kiện tiên quyết
Số lượng vô hướng phải bằng tích các kích thước của hình.Tuyên ngôn
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Tạo
ShapedArraySlice
từ một giá trị vô hướng.Tuyên ngôn
public init(_ scalar: Scalar)
Tạo một
ShapedArraySlice
với hình dạng được chỉ định và một giá trị vô hướng lặp lại duy nhất.Tuyên ngôn
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Thông số
repeatedValue
Giá trị vô hướng cần lặp lại.
shape
Hình dạng của
ShapedArraySlice
.Tạo một
ShapedArraySlice
với hình dạng được chỉ định và một giá trị vô hướng lặp lại duy nhất.Tuyên ngôn
public init(repeating repeatedValue: Scalar, shape: [Int])
Thông số
repeatedValue
Giá trị vô hướng cần lặp lại.
shape
Hình dạng của
ShapedArraySlice
.Phạm vi vô hướng từ
ShapedArray
cơ sở được biểu thị bằngShapedArraySlice
.Tuyên ngôn
var scalarRange: Range<Int> { get }
Gọi một bao đóng bằng một con trỏ tới bộ lưu trữ liền kề của
ShapedArraySlice
.Tuyên ngôn
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Thông số
body
Một bao đóng có tham số
UnsafeBufferPointer
trỏ đến vùng lưu trữ liền kề choShapedArraySlice
. Nếu không có bộ nhớ như vậy tồn tại, nó sẽ được tạo. Nếu nội dung có giá trị trả về thì giá trị đó cũng được sử dụng làm giá trị trả về cho phương thứcwithUnsafeBufferPointer(_:)
. Đối số con trỏ chỉ hợp lệ trong suốt thời gian thực thi phương thức.Gọi bao đóng đã cho bằng một con trỏ tới bộ lưu trữ liền kề có thể thay đổi của
ShapedArraySlice
.Tuyên ngôn
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Thông số
body
Một bao đóng có tham số
UnsafeMutableBufferPointer
trỏ đến vùng lưu trữ liền kề choShapedArraySlice
. Nếu không có bộ nhớ như vậy tồn tại, nó sẽ được tạo. Nếu nội dung có giá trị trả về thì giá trị đó cũng được sử dụng làm giá trị trả về cho phương thứcwithUnsafeMutableBufferPointer(_:)
. Đối số con trỏ chỉ hợp lệ trong suốt thời gian thực thi phương thức.Tuyên ngôn
public typealias Index = Int
Tuyên ngôn
public typealias Element = ShapedArraySlice
Tuyên ngôn
public typealias SubSequence = ShapedArraySlice
Tuyên ngôn
public var indices: Range<Int> { get }
Tuyên ngôn
public var startIndex: Int { get }
Tuyên ngôn
public var endIndex: Int { get }
Truy cập vào mảng phần tử được chỉ định bởi một chỉ mục trong thứ nguyên hàng đầu.
Tuyên ngôn
public subscript(index: Int) -> Element { get set }
Thông số
index
Chỉ số của mảng phần tử.
Truy cập vào mảng con được chỉ định bởi một phạm vi chỉ số liền kề.
Tuyên ngôn
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Thông số
bounds
Phạm vi liền kề của các chỉ số.
Một bản trình bày bằng văn bản của
ShapedArraySlice
này.Ghi chú
sử dụngfullDescription
cho một biểu diễn không được in đẹp, hiển thị tất cả các đại lượng vô hướng.Tuyên ngôn
public var description: String { get }
Tuyên ngôn
public var playgroundDescription: Any { get }
Tuyên ngôn
public var customMirror: Mirror { get }
Tuyên ngôn
public init(_ tensor: Tensor<Scalar>)
Tuyên ngôn
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Tuyên ngôn
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Tuyên ngôn
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Tuyên ngôn
public func hash(into hasher: inout Hasher)
Tuyên ngôn
public func encode(to encoder: Encoder) throws
Tuyên ngôn
public init(from decoder: Decoder) throws