@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
Uma fatia contígua de uma ShapedArray
ou ShapedArraySlice
exemplo.
ShapedArraySlice
permite rápido, operações eficientes em fatias contíguas de ShapedArray
casos. ShapedArraySlice
casos não têm o seu próprio armazenamento. Em vez disso, que proporciona uma vista para o armazenamento de sua base ShapedArray
. ShapedArraySlice
pode representar dois tipos diferentes de fatias: matrizes de elementos e subarrays.
Elemento matrizes são elementos subdimensional de um ShapedArray
: sua posição é um a menos do que a sua base. Fatias ao elemento da matriz são obtidas através de indexação de um ShapedArray
exemplo com um singular Int32
índice.
Por exemplo:
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]].
Subarrays são uma faixa contínua dos elementos em um ShapedArray
. A classificação de um subarray é a mesma de sua base, mas sua dimensão principal é a contagem do intervalo de fatias. Fatias subarray são obtidas através de indexação de um ShapedArray
com um Range<Int32>
que representa uma série de elementos (na dimensão líder). Métodos como prefix(:)
e suffix(:)
que índice internamente com uma gama também produzir subarray.
Por exemplo:
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]].
O número de dimensões da matriz.
Declaração
public var rank: Int { get }
A forma da matriz.
Declaração
public var shape: [Int] { get }
O número total de escalares na matriz.
Declaração
public var scalarCount: Int { get }
Cria um
ShapedArraySlice
com a forma especificada e escalares contíguos na ordem de linha principal.Condição prévia
O número de escalares deve ser igual ao produto das dimensões da forma.Declaração
public init(shape: [Int], scalars: [Scalar])
Cria um
ShapedArraySlice
com a forma especificada e a sequência de escalares, a fim de linha maior.Condição prévia
O número de escalares deve ser igual ao produto das dimensões da forma.Declaração
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Cria um
ShapedArraySlice
a partir de um valor escalar.Declaração
public init(_ scalar: Scalar)
Cria um
ShapedArraySlice
com a forma especificada e um único, valor escalar repetido.Declaração
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Parâmetros
repeatedValue
O valor escalar a ser repetido.
shape
A forma do
ShapedArraySlice
.Cria um
ShapedArraySlice
com a forma especificada e um único, valor escalar repetido.Declaração
public init(repeating repeatedValue: Scalar, shape: [Int])
Parâmetros
repeatedValue
O valor escalar a ser repetido.
shape
A forma do
ShapedArraySlice
.A gama de escalares desde a base
ShapedArray
representado por umShapedArraySlice
.Declaração
var scalarRange: Range<Int> { get }
Chama um fecho com um ponteiro para o
ShapedArraySlice
armazenamento contígua 's.Declaração
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parâmetros
body
Um fecho com um
UnsafeBufferPointer
parâmetro que aponta para o armazenamento contígua para oShapedArraySlice
. Se esse armazenamento não existir, ele será criado. Se o corpo tem um valor de retorno, esse valor também é usado como o valor de retorno para owithUnsafeBufferPointer(_:)
método. O argumento do ponteiro é válido apenas para a duração da execução do método.Chama o fecho dado com um ponteiro para o
ShapedArraySlice
armazenamento contígua mutável 's.Declaração
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parâmetros
body
Um fecho com um
UnsafeMutableBufferPointer
parâmetro que aponta para o armazenamento contígua para oShapedArraySlice
. Se esse armazenamento não existir, ele será criado. Se o corpo tem um valor de retorno, esse valor também é usado como o valor de retorno para owithUnsafeMutableBufferPointer(_:)
método. O argumento do ponteiro é válido apenas para a duração da execução do método.Declaração
public typealias Index = Int
Declaração
public typealias Element = ShapedArraySlice
Declaração
public typealias SubSequence = ShapedArraySlice
Declaração
public var indices: Range<Int> { get }
Declaração
public var startIndex: Int { get }
Declaração
public var endIndex: Int { get }
Acesse a matriz de elemento especificada por um índice na dimensão principal.
Declaração
public subscript(index: Int) -> Element { get set }
Parâmetros
index
Índice da matriz do elemento.
Acesse o subarray especificado por um intervalo contíguo de índices.
Declaração
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Parâmetros
bounds
Faixa contígua de índices.
A representação textual deste
ShapedArraySlice
.Observação
usofullDescription
para uma representação não-muito-impresso mostrando todos os escalares.Declaração
public var description: String { get }
Declaração
public var playgroundDescription: Any { get }
Declaração
public var customMirror: Mirror { get }
Declaração
public init(_ tensor: Tensor<Scalar>)
Declaração
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Declaração
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Declaração
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Declaração
public func hash(into hasher: inout Hasher)
Declaração
public func encode(to encoder: Encoder) throws
Declaração
public init(from decoder: Decoder) throws