@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
Una rebanada contiguos de una ShapedArray
o ShapedArraySlice
ejemplo.
ShapedArraySlice
permite una rápida, operaciones eficientes en cortes contiguos de ShapedArray
casos. ShapedArraySlice
casos no tienen su propio almacenamiento. En su lugar, ofrece una vista sobre el almacenamiento de su base ShapedArray
. ShapedArraySlice
puede representar dos tipos diferentes de rebanadas: conjuntos de elementos y subconjuntos.
Conjuntos de elementos son elementos subdimensional de un ShapedArray
: su rango es uno menos que la de su base. Element rebanadas de matriz se obtienen mediante la indexación de un ShapedArray
ejemplo con un singular Int32
índice.
Por ejemplo:
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]].
Submatrices son un intervalo contiguo de los elementos en un ShapedArray
. El rango de un subarreglo es el mismo que el de su base, pero su dimensión principal es el recuento del rango de corte. Rebanadas subarreglo se obtienen mediante la indexación de un ShapedArray
con un Range<Int32>
que representa un rango de elementos (en la dimensión principal). Métodos como prefix(:)
y suffix(:)
que internamente índice con una gama también producen submatriz.
Por ejemplo:
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]].
El número de dimensiones de la matriz.
Declaración
public var rank: Int { get }
La forma de la matriz.
Declaración
public var shape: [Int] { get }
El número total de escalares en la matriz.
Declaración
public var scalarCount: Int { get }
Crea un
ShapedArraySlice
con la forma especificada y escalares contiguos en orden de las filas.Condición previa
El número de escalares debe ser igual al producto de las dimensiones de la forma.Declaración
public init(shape: [Int], scalars: [Scalar])
Crea un
ShapedArraySlice
con la forma especificada y la secuencia de escalares en orden de las filas.Condición previa
El número de escalares debe ser igual al producto de las dimensiones de la forma.Declaración
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Crea un
ShapedArraySlice
de un valor escalar.Declaración
public init(_ scalar: Scalar)
Crea un
ShapedArraySlice
con la forma especificada y un solo valor escalar, que se repite.Declaración
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Parámetros
repeatedValue
El valor escalar para repetir.
shape
La forma de la
ShapedArraySlice
.Crea un
ShapedArraySlice
con la forma especificada y un solo valor escalar, que se repite.Declaración
public init(repeating repeatedValue: Scalar, shape: [Int])
Parámetros
repeatedValue
El valor escalar para repetir.
shape
La forma de la
ShapedArraySlice
.La gama de escalares de la base
ShapedArray
representado por unShapedArraySlice
.Declaración
var scalarRange: Range<Int> { get }
Pide un cierre con un puntero a la
ShapedArraySlice
almacenamiento contiguo 's.Declaración
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parámetros
body
Un cierre con un
UnsafeBufferPointer
parámetro que apunta al almacenamiento contiguo para elShapedArraySlice
. Si no existe tal almacenamiento, se crea. Si el cuerpo tiene un valor de retorno, ese valor se utiliza también como el valor de retorno para elwithUnsafeBufferPointer(_:)
método. El argumento del puntero es válido solo durante la ejecución del método.Llama al cierre dada con un puntero a la
ShapedArraySlice
almacenamiento contiguo mutable 's.Declaración
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parámetros
body
Un cierre con un
UnsafeMutableBufferPointer
parámetro que apunta al almacenamiento contiguo para elShapedArraySlice
. Si no existe tal almacenamiento, se crea. Si el cuerpo tiene un valor de retorno, ese valor se utiliza también como el valor de retorno para elwithUnsafeMutableBufferPointer(_:)
método. El argumento del puntero es válido solo durante la ejecución del método.Declaración
public typealias Index = Int
Declaración
public typealias Element = ShapedArraySlice
Declaración
public typealias SubSequence = ShapedArraySlice
Declaración
public var indices: Range<Int> { get }
Declaración
public var startIndex: Int { get }
Declaración
public var endIndex: Int { get }
Acceda a la matriz de elementos especificada por un índice en la dimensión principal.
Declaración
public subscript(index: Int) -> Element { get set }
Parámetros
index
Índice de la matriz de elementos.
Acceda al subarreglo especificado por un rango contiguo de índices.
Declaración
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Parámetros
bounds
Gama contigua de índices.
Una representación textual de este
ShapedArraySlice
.Nota
usofullDescription
de una representación no muy impresa-mostrando todos los escalares.Declaración
public var description: String { get }
Declaración
public var playgroundDescription: Any { get }
Declaración
public var customMirror: Mirror { get }
Declaración
public init(_ tensor: Tensor<Scalar>)
Declaración
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Declaración
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Declaración
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Declaración
public func hash(into hasher: inout Hasher)
Declaración
public func encode(to encoder: Encoder) throws
Declaración
public init(from decoder: Decoder) throws