@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
Ciągły wycinek instancji ShapedArray
lub ShapedArraySlice
.
ShapedArraySlice
umożliwia szybkie i wydajne operacje na sąsiadujących wycinkach instancji ShapedArray
. Instancje ShapedArraySlice
nie mają własnego magazynu. Zamiast tego zapewniają wgląd w przechowywanie ich podstawowej ShapedArray
. ShapedArraySlice
może reprezentować dwa różne rodzaje plasterków: tablice elementów i podtablice.
Tablice elementów są elementami podwymiarowymi ShapedArray
: ich ranga jest o jeden mniejsza niż ich podstawa. Wycinki tablicy elementów uzyskuje się poprzez indeksowanie instancji ShapedArray
pojedynczym indeksem Int32
.
Na przykład:
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]].
Podtablice to ciągły zakres elementów w ShapedArray
. Ranga podtablicy jest taka sama jak jej podstawy, ale jej wymiarem wiodącym jest liczba zakresu wycinka. Wycinki podtablicy uzyskuje się przez indeksowanie ShapedArray
z Range<Int32>
, który reprezentuje zakres elementów (w wymiarze wiodącym). Metody takie jak prefix(:)
i suffix(:)
które wewnętrznie indeksują zakres, również tworzą podtablicę.
Na przykład:
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]].
Liczba wymiarów tablicy.
Deklaracja
public var rank: Int { get }
Kształt tablicy.
Deklaracja
public var shape: [Int] { get }
Całkowita liczba skalarów w tablicy.
Deklaracja
public var scalarCount: Int { get }
Tworzy
ShapedArraySlice
o określonym kształcie i sąsiadujących skalarach w kolejności od głównych wierszy.Warunek wstępny
Liczba skalarów musi być równa iloczynowi wymiarów kształtu.Deklaracja
public init(shape: [Int], scalars: [Scalar])
Tworzy
ShapedArraySlice
o określonym kształcie i sekwencji skalarów w kolejności głównych wierszy.Warunek wstępny
Liczba skalarów musi być równa iloczynowi wymiarów kształtu.Deklaracja
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Tworzy
ShapedArraySlice
na podstawie wartości skalarnej.Deklaracja
public init(_ scalar: Scalar)
Tworzy
ShapedArraySlice
o określonym kształcie i pojedynczej, powtarzanej wartości skalarnej.Deklaracja
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Parametry
repeatedValue
Wartość skalarna do powtórzenia.
shape
Kształt
ShapedArraySlice
.Tworzy
ShapedArraySlice
o określonym kształcie i pojedynczej, powtarzanej wartości skalarnej.Deklaracja
public init(repeating repeatedValue: Scalar, shape: [Int])
Parametry
repeatedValue
Wartość skalarna do powtórzenia.
shape
Kształt
ShapedArraySlice
.Zakres skalarów z podstawowego
ShapedArray
reprezentowany przezShapedArraySlice
.Deklaracja
var scalarRange: Range<Int> { get }
Wywołuje zamknięcie ze wskaźnikiem do ciągłego magazynu
ShapedArraySlice
.Deklaracja
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parametry
body
Zamknięcie z parametrem
UnsafeBufferPointer
wskazującym ciągły magazyn dlaShapedArraySlice
. Jeżeli taki magazyn nie istnieje, zostanie on utworzony. Jeśli treść ma wartość zwracaną, wartość ta jest również używana jako wartość zwracana dla metodywithUnsafeBufferPointer(_:)
. Argument wskaźnika jest ważny tylko przez czas wykonywania metody.Wywołuje dane zamknięcie ze wskaźnikiem do modyfikowalnego, ciągłego magazynu
ShapedArraySlice
.Deklaracja
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parametry
body
Zamknięcie z parametrem
UnsafeMutableBufferPointer
wskazującym ciągły magazyn dlaShapedArraySlice
. Jeżeli taki magazyn nie istnieje, zostanie on utworzony. Jeśli treść ma wartość zwracaną, wartość ta jest również używana jako wartość zwracana dla metodywithUnsafeMutableBufferPointer(_:)
. Argument wskaźnika jest ważny tylko przez czas wykonywania metody.Deklaracja
public typealias Index = Int
Deklaracja
public typealias Element = ShapedArraySlice
Deklaracja
public typealias SubSequence = ShapedArraySlice
Deklaracja
public var indices: Range<Int> { get }
Deklaracja
public var startIndex: Int { get }
Deklaracja
public var endIndex: Int { get }
Uzyskaj dostęp do tablicy elementów określonej przez indeks w wymiarze wiodącym.
Deklaracja
public subscript(index: Int) -> Element { get set }
Parametry
index
Indeks tablicy elementów.
Uzyskaj dostęp do podtablicy określonej przez ciągły zakres indeksów.
Deklaracja
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Parametry
bounds
Ciągły zakres indeksów.
Tekstowa reprezentacja tego
ShapedArraySlice
.Notatka
użyjfullDescription
dla niezbyt wydrukowanej reprezentacji pokazującej wszystkie skalary.Deklaracja
public var description: String { get }
Deklaracja
public var playgroundDescription: Any { get }
Deklaracja
public var customMirror: Mirror { get }
Deklaracja
public init(_ tensor: Tensor<Scalar>)
Deklaracja
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Deklaracja
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Deklaracja
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Deklaracja
public func hash(into hasher: inout Hasher)
Deklaracja
public func encode(to encoder: Encoder) throws
Deklaracja
public init(from decoder: Decoder) throws