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`
متاح حيث `Scalar`: `Codable`