@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 }
تصريح
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)
تصريح
public func encode(to encoder: Encoder) throws
تصريح
public init(from decoder: Decoder) throws