@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