@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
Sepotong yang berdekatan dari instance ShapedArray
atau ShapedArraySlice
.
ShapedArraySlice
memungkinkan operasi yang cepat dan efisien pada irisan instans ShapedArray
yang berdekatan. Instance ShapedArraySlice
tidak memiliki penyimpanannya sendiri. Sebaliknya, mereka memberikan tampilan ke penyimpanan basis mereka ShapedArray
. ShapedArraySlice
dapat mewakili dua jenis irisan yang berbeda: array elemen dan subarray.
Array elemen adalah elemen subdimensi dari ShapedArray
: peringkatnya kurang satu dari peringkat dasarnya. Irisan array elemen diperoleh dengan mengindeks instance ShapedArray
dengan indeks Int32
tunggal.
Misalnya:
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]].
Subarray adalah rentang elemen yang berdekatan dalam ShapedArray
. Pangkat suatu subarray sama dengan pangkat dasarnya, namun dimensi utamanya adalah jumlah rentang irisan. Irisan subarray diperoleh dengan mengindeks ShapedArray
dengan Range<Int32>
yang mewakili rentang elemen (dalam dimensi utama). Metode seperti prefix(:)
dan suffix(:)
yang mengindeks secara internal dengan suatu rentang juga menghasilkan subarray.
Misalnya:
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]].
Jumlah dimensi array.
Pernyataan
public var rank: Int { get }
Bentuk susunannya.
Pernyataan
public var shape: [Int] { get }
Jumlah total skalar dalam array.
Pernyataan
public var scalarCount: Int { get }
Membuat
ShapedArraySlice
dengan bentuk tertentu dan skalar yang berdekatan dalam urutan baris-utama.Prasyarat
Jumlah skalar harus sama dengan hasil kali dimensi bangun.Pernyataan
public init(shape: [Int], scalars: [Scalar])
Membuat
ShapedArraySlice
dengan bentuk dan urutan skalar tertentu dalam urutan baris-utama.Prasyarat
Jumlah skalar harus sama dengan hasil kali dimensi bangun.Pernyataan
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
Membuat
ShapedArraySlice
dari nilai skalar.Pernyataan
public init(_ scalar: Scalar)
Membuat
ShapedArraySlice
dengan bentuk tertentu dan satu nilai skalar berulang.Pernyataan
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
Parameter
repeatedValue
Nilai skalar yang akan diulang.
shape
Bentuk dari
ShapedArraySlice
.Membuat
ShapedArraySlice
dengan bentuk tertentu dan satu nilai skalar berulang.Pernyataan
public init(repeating repeatedValue: Scalar, shape: [Int])
Parameter
repeatedValue
Nilai skalar yang akan diulang.
shape
Bentuk dari
ShapedArraySlice
.Rentang skalar dari basis
ShapedArray
diwakili olehShapedArraySlice
.Pernyataan
var scalarRange: Range<Int> { get }
Memanggil penutupan dengan penunjuk ke penyimpanan bersebelahan
ShapedArraySlice
.Pernyataan
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parameter
body
Penutupan dengan parameter
UnsafeBufferPointer
yang menunjuk ke penyimpanan yang berdekatan untukShapedArraySlice
. Jika tidak ada penyimpanan seperti itu, maka penyimpanan tersebut akan dibuat. Jika isi memiliki nilai kembalian, nilai tersebut juga digunakan sebagai nilai kembalian untuk metodewithUnsafeBufferPointer(_:)
. Argumen pointer hanya valid selama durasi eksekusi metode.Memanggil penutupan yang diberikan dengan penunjuk ke penyimpanan bersebelahan
ShapedArraySlice
yang bisa diubah.Pernyataan
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
Parameter
body
Penutupan dengan parameter
UnsafeMutableBufferPointer
yang menunjuk ke penyimpanan yang berdekatan untukShapedArraySlice
. Jika tidak ada penyimpanan seperti itu, maka penyimpanan tersebut akan dibuat. Jika isi memiliki nilai kembalian, nilai tersebut juga digunakan sebagai nilai kembalian untuk metodewithUnsafeMutableBufferPointer(_:)
. Argumen pointer hanya valid selama durasi eksekusi metode.Pernyataan
public typealias Index = Int
Pernyataan
public typealias Element = ShapedArraySlice
Pernyataan
public typealias SubSequence = ShapedArraySlice
Pernyataan
public var indices: Range<Int> { get }
Pernyataan
public var startIndex: Int { get }
Pernyataan
public var endIndex: Int { get }
Akses larik elemen yang ditentukan oleh indeks di dimensi utama.
Pernyataan
public subscript(index: Int) -> Element { get set }
Parameter
index
Indeks array elemen.
Akses subarray yang ditentukan oleh rentang indeks yang berdekatan.
Pernyataan
public subscript(bounds: Range<Int>) -> SubSequence { get set }
Parameter
bounds
Rentang indeks yang berdekatan.
Representasi tekstual dari
ShapedArraySlice
ini.Catatan
gunakanfullDescription
untuk representasi yang tidak dicetak cantik yang menampilkan semua skalar.Pernyataan
public var description: String { get }
Pernyataan
public var playgroundDescription: Any { get }
Pernyataan
public var customMirror: Mirror { get }
Pernyataan
public init(_ tensor: Tensor<Scalar>)
Pernyataan
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Pernyataan
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Pernyataan
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Pernyataan
public func hash(into hasher: inout Hasher)
Pernyataan
public func encode(to encoder: Encoder) throws
Pernyataan
public init(from decoder: Decoder) throws