@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
ShapedArray
またはShapedArraySlice
インスタンスの連続スライス。
ShapedArraySlice
使用すると、 ShapedArray
インスタンスの連続スライスに対する高速かつ効率的な操作が可能になります。 ShapedArraySlice
インスタンスには独自のストレージがありません。代わりに、ベースShapedArray
のストレージへのビューを提供します。 ShapedArraySlice
、要素配列と部分配列という 2 つの異なる種類のスライスを表すことができます。
要素配列はShapedArray
のサブディメンション要素です。そのランクはベースのランクより 1 つ小さいです。要素配列スライスは、 ShapedArray
インスタンスに単数のInt32
インデックスを付けることによって取得されます。
例えば:
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]].
サブ配列は、 ShapedArray
内の要素の連続した範囲です。サブ配列のランクはそのベースのランクと同じですが、その先頭の次元はスライス範囲の数です。サブ配列スライスは、(先頭の次元の) 要素の範囲を表すRange<Int32>
を使用してShapedArray
にインデックスを付けることによって取得されます。 prefix(:)
やsuffix(:)
など、内部的に範囲でインデックスを付けるメソッドも部分配列を生成します。
例えば:
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]].
配列の次元数。
宣言
public var rank: Int { get }
配列の形状。
宣言
public var shape: [Int] { get }
配列内のスカラーの総数。
宣言
public var scalarCount: Int { get }
指定された形状と連続するスカラーを行優先の順序で使用して
ShapedArraySlice
を作成します。前提条件
スカラーの数は、形状の寸法の積と等しくなければなりません。宣言
public init(shape: [Int], scalars: [Scalar])
指定された形状とスカラーのシーケンスを行優先の順序で使用して
ShapedArraySlice
を作成します。前提条件
スカラーの数は、形状の寸法の積と等しくなければなりません。宣言
public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
スカラー値から
ShapedArraySlice
を作成します。宣言
public init(_ scalar: Scalar)
指定された形状と単一の繰り返しスカラー値を持つ
ShapedArraySlice
を作成します。宣言
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: [Int], repeating repeatedValue: Scalar)
パラメータ
repeatedValue
繰り返すスカラー値。
shape
ShapedArraySlice
の形状。指定された形状と単一の繰り返しスカラー値を持つ
ShapedArraySlice
を作成します。宣言
public init(repeating repeatedValue: Scalar, shape: [Int])
パラメータ
repeatedValue
繰り返すスカラー値。
shape
ShapedArraySlice
の形状。ShapedArraySlice
で表される基本ShapedArray
のスカラーの範囲。宣言
var scalarRange: Range<Int> { get }
ShapedArraySlice
の連続ストレージへのポインターを使用してクロージャーを呼び出します。宣言
public func withUnsafeBufferPointer<Result>( _ body: (UnsafeBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
パラメータ
body
ShapedArraySlice
の連続ストレージを指すUnsafeBufferPointer
パラメーターを持つクロージャー。そのようなストレージが存在しない場合は、作成されます。 body に戻り値がある場合、その値はwithUnsafeBufferPointer(_:)
メソッドの戻り値としても使用されます。ポインタ引数は、メソッドの実行中のみ有効です。ShapedArraySlice
の可変の連続ストレージへのポインターを使用して、指定されたクロージャを呼び出します。宣言
public mutating func withUnsafeMutableBufferPointer<Result>( _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result ) rethrows -> Result
パラメータ
body
ShapedArraySlice
の連続ストレージを指すUnsafeMutableBufferPointer
パラメーターを持つクロージャー。そのようなストレージが存在しない場合は、作成されます。 body に戻り値がある場合、その値はwithUnsafeMutableBufferPointer(_:)
メソッドの戻り値としても使用されます。ポインタ引数は、メソッドの実行中のみ有効です。宣言
public typealias Index = Int
宣言
public typealias Element = ShapedArraySlice
宣言
public typealias SubSequence = ShapedArraySlice
宣言
public var indices: Range<Int> { get }
宣言
public var startIndex: Int { get }
宣言
public var endIndex: Int { get }
先頭次元のインデックスで指定された要素配列にアクセスします。
宣言
public subscript(index: Int) -> Element { get set }
パラメータ
index
要素配列のインデックス。
連続したインデックス範囲で指定されたサブ配列にアクセスします。
宣言
public subscript(bounds: Range<Int>) -> SubSequence { get set }
パラメータ
bounds
インデックスの連続範囲。
この
ShapedArraySlice
のテキスト表現。注記
すべてのスカラーを表示する、美しく印刷されない表現には、fullDescription
を使用します。宣言
public var description: String { get }
宣言
public var playgroundDescription: Any { get }
宣言
public var customMirror: Mirror { get }
宣言
public init(_ tensor: Tensor<Scalar>)
宣言
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
宣言
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
宣言
public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
宣言
public func hash(into hasher: inout Hasher)