@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