ShapedArraySlice

@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 می تواند دو نوع مختلف از برش ها را نشان دهد: آرایه های عنصر و زیرآرایه.

آرایه های عنصر عناصر زیربعدی یک ShapedArray هستند: رتبه آنها یک کمتر از پایه آنها است. برش های آرایه عناصر با نمایه سازی یک نمونه 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 هستند. رتبه یک زیرآرایه با پایه آن یکسان است، اما بعد اصلی آن تعداد محدوده برش است. برش های زیرآرایی با نمایه سازی ShapedArray با Range<Int32> به دست می آیند که گستره ای از عناصر (در بعد اصلی) را نشان می دهد. متدهایی مانند 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 .

  • محدوده اسکالرها از پایه ShapedArray که توسط ShapedArraySlice نشان داده شده است.

    اعلام

    var scalarRange: Range<Int> { get }
  • بسته شدن را با اشاره گر به فضای ذخیره سازی پیوسته ShapedArraySlice فراخوانی می کند.

    اعلام

    public func withUnsafeBufferPointer<Result>(
      _ body: (UnsafeBufferPointer<Scalar>) throws -> Result
    ) rethrows -> Result

    مولفه های

    body

    بسته شدن با یک پارامتر UnsafeBufferPointer که به فضای ذخیره سازی پیوسته برای ShapedArraySlice اشاره می کند. اگر چنین فضای ذخیره‌سازی وجود نداشته باشد، ایجاد می‌شود. اگر بدنه مقدار بازگشتی داشته باشد، از آن مقدار به عنوان مقدار بازگشتی برای متد withUnsafeBufferPointer(_:) نیز استفاده می شود. آرگومان اشاره گر فقط برای مدت زمان اجرای متد معتبر است.

  • بسته شدن داده شده را با اشاره گر به حافظه پیوسته قابل تغییر ShapedArraySlice فراخوانی می کند.

    اعلام

    public mutating func withUnsafeMutableBufferPointer<Result>(
      _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result
    ) rethrows -> Result

    مولفه های

    body

    بسته شدن با یک پارامتر UnsafeMutableBufferPointer که به فضای ذخیره سازی پیوسته برای ShapedArraySlice اشاره می کند. اگر چنین فضای ذخیره‌سازی وجود نداشته باشد، ایجاد می‌شود. اگر بدنه مقدار بازگشتی داشته باشد، آن مقدار به عنوان مقدار بازگشتی برای متد 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 }
در جایی که 'Scalar': 'TensorFlowScalar' موجود است
موجود در جایی که 'Scalar': 'Equatable'
  • اعلام

    public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
در جایی که 'Scalar': 'Hashable' موجود است
  • اعلام

    public func hash(into hasher: inout Hasher)
موجود در جایی که 'Scalar': 'Codable'