@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
Tranche contiguë d'une instance ShapedArray
ou ShapedArraySlice
.
ShapedArraySlice
permet des opérations rapides et efficaces sur des tranches contiguës d'instances ShapedArray
. Les instances ShapedArraySlice
ne disposent pas de leur propre stockage. Au lieu de cela, ils fournissent une vue sur le stockage de leur ShapedArray
de base. ShapedArraySlice
peut représenter deux types différents de tranches : les tableaux d'éléments et les sous-tableaux.
Les tableaux d'éléments sont des éléments sous-dimensionnels d'un ShapedArray
: leur rang est inférieur d'un à celui de leur base. Les tranches de tableau d'éléments sont obtenues en indexant une instance ShapedArray
avec un index Int32
singulier.
Par exemple:
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]].
Les sous-tableaux sont une plage contiguë d'éléments dans un ShapedArray
. Le rang d'un sous-tableau est le même que celui de sa base, mais sa dimension principale est le nombre de tranches. Les tranches de sous-tableau sont obtenues en indexant un ShapedArray
avec un Range<Int32>
qui représente une plage d'éléments (dans la dimension principale). Des méthodes telles que prefix(:)
et suffix(:)
qui indexent en interne avec une plage produisent également un sous-tableau.
Par exemple:
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]].
Le nombre de dimensions du tableau.
Déclaration
public var rank: Int { get }
La forme du tableau.
Déclaration
public var shape: [Int] { get }
Le nombre total de scalaires dans le tableau.
Déclaration
public var scalarCount: Int { get }
Crée un
ShapedArraySlice
avec la forme spécifiée et des scalaires contigus dans l'ordre des lignes principales.Condition préalable
Le nombre de scalaires doit être égal au produit des dimensions de la forme.Déclaration
public init(shape: [Int], scalars: [Scalar])
Crée un
ShapedArraySlice
avec la forme et la séquence spécifiées de scalaires dans l'ordre des lignes principales.Condition préalable
Le nombre de scalaires doit être égal au produit des dimensions de la forme.Déclaration
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Crée un
ShapedArraySlice
à partir d'une valeur scalaire.Déclaration
public init(_ scalar: Scalar)
Crée un
ShapedArraySlice
avec la forme spécifiée et une valeur scalaire unique et répétée.Déclaration
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Paramètres
repeatedValue
La valeur scalaire à répéter.
shape
La forme du
ShapedArraySlice
.Crée un
ShapedArraySlice
avec la forme spécifiée et une valeur scalaire unique et répétée.Déclaration
public init(repeating repeatedValue: Scalar, shape: [Int])
Paramètres
repeatedValue
La valeur scalaire à répéter.
shape
La forme du
ShapedArraySlice
.La plage de scalaires du
ShapedArray
de base représenté par unShapedArraySlice
.Déclaration
var scalarRange: Range<Int> { get }
Appelle une fermeture avec un pointeur vers le stockage contigu du
ShapedArraySlice
.Déclaration
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Paramètres
body
Fermeture avec un paramètre
UnsafeBufferPointer
qui pointe vers le stockage contigu duShapedArraySlice
. Si aucun stockage de ce type n’existe, il est créé. Si body a une valeur de retour, cette valeur est également utilisée comme valeur de retour pour la méthodewithUnsafeBufferPointer(_:)
. L'argument pointeur n'est valide que pendant la durée de l'exécution de la méthode.Appelle la fermeture donnée avec un pointeur vers le stockage contigu mutable du
ShapedArraySlice
.Déclaration
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Paramètres
body
Fermeture avec un paramètre
UnsafeMutableBufferPointer
qui pointe vers le stockage contigu duShapedArraySlice
. Si aucun stockage de ce type n’existe, il est créé. Si body a une valeur de retour, cette valeur est également utilisée comme valeur de retour pour la méthodewithUnsafeMutableBufferPointer(_:)
. L'argument pointeur n'est valide que pendant la durée de l'exécution de la méthode.Déclaration
public typealias Index = Int
Déclaration
public typealias Element = ShapedArraySlice
Déclaration
public typealias SubSequence = ShapedArraySlice
Déclaration
public var indices: Range<Int> { get }
Déclaration
public var startIndex: Int { get }
Déclaration
public var endIndex: Int { get }
Accédez au tableau d'éléments spécifié par un index dans la dimension principale.
Déclaration
public subscript(index: Int) -> Element { get set }
Paramètres
index
Index du tableau d'éléments.
Accédez au sous-tableau spécifié par une plage contiguë d’index.
Déclaration
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Paramètres
bounds
Plage contiguë d’indices.
Une représentation textuelle de ce
ShapedArraySlice
.Note
utilisezfullDescription
pour une représentation non joliment imprimée montrant tous les scalaires.Déclaration
public var description: String { get }
Déclaration
public var playgroundDescription: Any { get }
Déclaration
public var customMirror: Mirror { get }
Déclaration
public init(_ tensor: Tensor<Scalar>)
Déclaration
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Déclaration
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Déclaration
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Déclaration
public func hash(into hasher: inout Hasher)
Déclaration
public func encode(to encoder: Encoder) throws
Déclaration
public init(from decoder: Decoder) throws