@frozen
public struct Tensor<Scalar> where Scalar : TensorFlowScalar
extension Tensor: Collatable
extension Tensor: CopyableToDevice
extension Tensor: AnyTensor
extension Tensor: ExpressibleByArrayLiteral
extension Tensor: CustomStringConvertible
extension Tensor: CustomPlaygroundDisplayConvertible
extension Tensor: CustomReflectable
extension Tensor: TensorProtocol
extension Tensor: TensorGroup
extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
extension Tensor: Equatable where Scalar: Equatable
extension Tensor: Codable where Scalar: Codable
extension Tensor: AdditiveArithmetic where Scalar: Numeric
extension Tensor: PointwiseMultiplicative where Scalar: Numeric
extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
extension Tensor: DifferentiableTensorProtocol
where Scalar: TensorFlowFloatingPoint
อาร์เรย์หลายมิติขององค์ประกอบที่เป็นลักษณะทั่วไปของเวกเตอร์และเมทริกซ์ในมิติที่อาจสูงกว่า
พารามิเตอร์ทั่วไป Scalar
อธิบายประเภทของสเกลาร์ในเมตริกซ์ (เช่น Int32
, Float
ฯลฯ )
TensorHandle
พื้นฐานบันทึก
handle
เป็นแบบสาธารณะเพื่ออนุญาตให้ผู้ใช้กำหนด ops แต่ปกติไม่ควรใช้คำประกาศ
public let handle: TensorHandle<Scalar>
คำประกาศ
public init(handle: TensorHandle<Scalar>)
คลายมิติที่กำหนดของเทนเซอร์อันดับ
R
ออกเป็นเทนเซอร์หลายอันดับ(R-1)
แกะเทนเซอร์N
ออกจากเทนเซอร์นี้โดยการบิ่นตามขนาดaxis
โดยที่N
อนุมานจากรูปร่างของเทนเซอร์นี้ ตัวอย่างเช่น เมื่อกำหนดเทนเซอร์ที่มีรูปร่าง[A, B, C, D]
:- หาก
axis == 0
ดังนั้นเทนเซอร์i
-th ในอาร์เรย์ที่ส่งคืนคือชิ้นself[i, :, :, :]
และเทนเซอร์แต่ละตัวในอาร์เรย์นั้นจะมีรูปร่าง[B, C, D]
(โปรดทราบว่ามิติข้อมูลที่ถูกคลายแพ็กหายไปแล้ว ไม่เหมือนTensor.split(numSplits:alongAxis)
หรือTensor.split(sizes:alongAxis)
) - หาก
axis == 1
ดังนั้นเทนเซอร์i
-th ในอาร์เรย์ที่ส่งคืนคือvalue[:, i, :, :]
และเทนเซอร์แต่ละตัวในอาร์เรย์นั้นจะมีรูปร่าง[A, C, D]
- ฯลฯ
นี่คือสิ่งที่ตรงกันข้ามกับ
Tensor.init(stacking:alongAxis:)
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
โดยที่rank
คืออันดับของเทนเซอร์ที่ให้มาคำประกาศ
@differentiable public func unstacked(alongAxis axis: Int = 0) -> [Tensor]
พารามิเตอร์
axis
มิติข้อมูลที่จะแยกออกจากกัน ค่าลบล้อมรอบ
ค่าส่งคืน
อาร์เรย์ที่มีเทนเซอร์ที่ไม่เรียงซ้อนกัน
- หาก
แยกเทนเซอร์ออกเป็นหลายเทนเซอร์ เทนเซอร์จะถูกแบ่งตาม
count
เป็นเทนaxis
ที่มีขนาดเล็กลง สิ่งนี้ต้องการให้count
แบ่งshape[axis]
เท่า ๆ กันตัวอย่างเช่น:
// 'value' is a tensor with shape [5, 30] // Split 'value' into 3 tensors along dimension 1: let parts = value.split(count: 3, alongAxis: 1) parts[0] // has shape [5, 10] parts[1] // has shape [5, 10] parts[2] // has shape [5, 10]
เงื่อนไขเบื้องต้น
count
จะต้องแบ่งขนาดของaxis
มิติให้เท่ากันเงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
โดยที่rank
คืออันดับของเทนเซอร์ที่ให้มาคำประกาศ
@differentiable public func split(count: Int, alongAxis axis: Int = 0) -> [Tensor]
พารามิเตอร์
count
จำนวนการแยกที่จะสร้าง
axis
มิติที่ใช้แยกเทนเซอร์นี้ ค่าลบล้อมรอบ
ค่าส่งคืน
อาร์เรย์ที่มีส่วนเทนเซอร์
แยกเทนเซอร์ออกเป็นหลายเทนเซอร์ เทนเซอร์แบ่งออกเป็น
sizes.shape[0]
ชิ้น รูปร่างของชิ้นที่i
มีรูปร่างเหมือนกับเทนเซอร์นี้ ยกเว้นตามaxis
มิติที่มีขนาดเป็นsizes[i]
ตัวอย่างเช่น:
// 'value' is a tensor with shape [5, 30] // Split 'value' into 3 tensors with sizes [4, 15, 11] along dimension 1: let parts = value.split(sizes: Tensor<Int32>([4, 15, 11]), alongAxis: 1) parts[0] // has shape [5, 4] parts[1] // has shape [5, 15] parts[2] // has shape [5, 11]
เงื่อนไขเบื้องต้น
ค่าใน
sizes
ต้องรวมกันจนเท่ากับขนาดของaxis
มิติเงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
โดยที่rank
คืออันดับของเทนเซอร์ที่ให้มาคำประกาศ
@differentiable(wrt: self) public func split(sizes: Tensor<Int32>, alongAxis axis: Int = 0) -> [Tensor]
พารามิเตอร์
sizes
เทนเซอร์ 1-D ที่มีขนาดของแต่ละการแยก
axis
มิติที่จะแยกเทนเซอร์นี้ ค่าลบล้อมรอบ
ค่าส่งคืน
อาร์เรย์ที่มีส่วนเทนเซอร์
คำประกาศ
@differentiable(wrt: self) public func split(sizes: [Int], alongAxis axis: Int = 0) -> [Tensor]
ส่งกลับเทนเซอร์แบบเรียงต่อกัน ซึ่งสร้างโดยการเรียงเมตริกซ์นี้
ตัวสร้างนี้สร้างเทนเซอร์ใหม่โดยการจำลองเทนเซอร์นี้
multiples
ครั้ง มิติที่i
ของเทนเซอร์ที่สร้างขึ้นมีองค์ประกอบself.shape[i] * multiples[i]
และค่าของเทนเซอร์นี้จะถูกจำลองแบบmultiples[i]
ครั้งตามมิติที่i
ตัวอย่างเช่น การเรียงต่อ[abcd]
ด้วย[2]
จะสร้าง[abcdabcd]
เงื่อนไขเบื้องต้น
รูปร่างของmultiples
จะต้องเป็น[tensor.rank]
เงื่อนไขเบื้องต้น
สเกลาร์ทั้งหมดในmultiples
จะต้องไม่เป็นลบคำประกาศ
@differentiable(wrt: self) public func tiled(multiples: [Int]) -> Tensor
ส่งกลับเทนเซอร์แบบเรียงต่อกัน ซึ่งสร้างโดยการเรียงเมตริกซ์นี้
ตัวสร้างนี้สร้างเทนเซอร์ใหม่โดยการจำลองเทนเซอร์นี้
multiples
ครั้ง มิติที่i
ของเทนเซอร์ที่สร้างขึ้นมีองค์ประกอบself.shape[i] * multiples[i]
และค่าของเทนเซอร์นี้จะถูกจำลองแบบmultiples[i]
ครั้งตามมิติที่i
ตัวอย่างเช่น การเรียงต่อ[abcd]
ด้วย[2]
จะสร้าง[abcdabcd]
เงื่อนไขเบื้องต้น
รูปร่างของmultiples
จะต้องเป็น[tensor.rank]
คำประกาศ
@differentiable(wrt: self) public func tiled(multiples: Tensor<Int32>) -> Tensor
ปรับรูปร่างให้เป็นรูปร่างของ
Tensor
ที่ระบุเงื่อนไขเบื้องต้น
จำนวนสเกลาร์ตรงกับรูปร่างใหม่คำประกาศ
@differentiable(wrt: self) public func reshaped<T>(like other: Tensor<T>) -> Tensor where T : TensorFlowScalar
ปรับรูปร่างให้เป็นรูปร่างที่กำหนด
เงื่อนไขเบื้องต้น
จำนวนสเกลาร์ตรงกับรูปร่างใหม่คำประกาศ
@differentiable(wrt: self) public func reshaped(to newShape: TensorShape) -> Tensor
ปรับรูปร่างเป็น
Tensor
ที่ระบุซึ่งแสดงถึงรูปร่างเงื่อนไขเบื้องต้น
จำนวนสเกลาร์ตรงกับรูปร่างใหม่คำประกาศ
@differentiable(wrt: self) public func reshaped(toShape newShape: Tensor<Int32>) -> Tensor
ส่งกลับสำเนาของเทนเซอร์ที่ยุบลงใน
Tensor
1-D ตามลำดับแถวหลักคำประกาศ
@differentiable(wrt: self) public func flattened() -> Tensor
ส่งคืน
Tensor
ที่ขยายรูปร่าง โดยแทรกมิติ 1 ไว้ที่ดัชนีรูปร่างที่ระบุคำประกาศ
@differentiable(wrt: self) public func expandingShape(at axes: Int...) -> Tensor
ส่งคืน
Tensor
ที่ขยายรูปร่าง โดยแทรกมิติ 1 ไว้ที่ดัชนีรูปร่างที่ระบุคำประกาศ
@differentiable(wrt: self) public func expandingShape(at axes: [Int]) -> Tensor
ส่งกลับ
Tensor
ที่ยกอันดับด้วยมิตินำหน้าเป็น 1คำประกาศ
@differentiable(wrt: self) public func rankLifted() -> Tensor
ลบขนาดที่ระบุขนาด 1 ออกจากรูปร่างของเทนเซอร์ หากไม่มีการระบุมิติข้อมูล มิติข้อมูลขนาด 1 ทั้งหมดจะถูกลบออก
คำประกาศ
@differentiable(wrt: self) public func squeezingShape(at axes: Int...) -> Tensor
ลบขนาดที่ระบุขนาด 1 ออกจากรูปร่างของเทนเซอร์ หากไม่มีการระบุมิติข้อมูล มิติข้อมูลขนาด 1 ทั้งหมดจะถูกลบออก
คำประกาศ
@differentiable(wrt: self) public func squeezingShape(at axes: [Int]) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@differentiable(wrt: self) public func transposed(permutation: Tensor<Int32>) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: Tensor<Int32>) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@differentiable(wrt: self) public func transposed(permutation: [Int]) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: [Int]) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@differentiable(wrt: self) public func transposed(permutation: Int...) -> Tensor
ส่งกลับเทนเซอร์ที่เปลี่ยนตำแหน่ง โดยมีมิติที่เรียงสับเปลี่ยนตามลำดับที่ระบุ
คำประกาศ
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: Int...) -> Tensor
ส่งกลับเทนเซอร์แบบทรานสโพส โดยมีมิติที่เรียงสับเปลี่ยนในลำดับย้อนกลับ
คำประกาศ
@differentiable(wrt: self) public func transposed() -> Tensor
ส่งกลับเทนเซอร์โดยกลับด้านมิติที่ระบุ
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
ต้องอยู่ในช่วง-rank..<rank
เงื่อนไขเบื้องต้น
จะต้องไม่มีการทำซ้ำในaxes
คำประกาศ
@differentiable(wrt: self) public func reversed(inAxes axes: Tensor<Int32>) -> Tensor
ส่งกลับเทนเซอร์โดยกลับด้านมิติที่ระบุ
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
ต้องอยู่ในช่วง-rank..<rank
เงื่อนไขเบื้องต้น
จะต้องไม่มีการทำซ้ำในaxes
คำประกาศ
@differentiable(wrt: self) public func reversed(inAxes axes: [Int]) -> Tensor
ส่งกลับเทนเซอร์โดยกลับด้านมิติที่ระบุ
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
ต้องอยู่ในช่วง-rank..<rank
เงื่อนไขเบื้องต้น
จะต้องไม่มีการทำซ้ำในaxes
คำประกาศ
@differentiable(wrt: self) public func reversed(inAxes axes: Int...) -> Tensor
ส่งกลับเทนเซอร์ที่ต่อกันตามแกนที่ระบุ
เงื่อนไขเบื้องต้น
เทนเซอร์ต้องมีขนาดเท่ากัน ยกเว้นแกนที่ระบุเงื่อนไขเบื้องต้น
แกนต้องอยู่ในช่วง-rank..<rank
คำประกาศ
@differentiable public func concatenated(with other: Tensor, alongAxis axis: Int = 0) -> Tensor
ตัวดำเนินการต่อข้อมูล
บันทึก
++
เป็นตัวดำเนินการแบบกำหนดเองที่ไม่มีอยู่ใน Swift แต่มีใน Haskell/Scala การเพิ่มนี้ไม่ใช่การเปลี่ยนแปลงภาษาเล็กน้อยและอาจก่อให้เกิดข้อโต้แย้งได้ การมีอยู่/การตั้งชื่อของ++
จะมีการพูดคุยกันในระหว่างขั้นตอนการออกแบบ API ในภายหลังคำประกาศ
@differentiable public static func ++ (lhs: Tensor, rhs: Tensor) -> Tensor
ส่งกลับเทนเซอร์โดยการรวบรวมชิ้นส่วนของอินพุตที่
indices
ตามแนวaxis
สำหรับ
indices
0-D (สเกลาร์) :result[p_0, ..., p_{axis-1}, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices, p_{axis + 1}, ..., p_{N-1}]
สำหรับ
indices
1-D (เวกเตอร์):result[p_0, ..., p_{axis-1}, i, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices[i], p_{axis + 1}, ..., p_{N-1}]
ในกรณีทั่วไป จะสร้างผลลัพธ์เทนเซอร์โดยที่:
result[p_0, ..., p_{axis-1}, i_{batch\_dims}, ..., i_{M-1}, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices[i_0, ..., i_{M-1}], p_{axis + 1}, ..., p_{N-1}]
โดยที่
N = self.rank
และM = indices.rank
รูปร่างของเทนเซอร์ที่ได้คือ:
self.shape[..<axis] + indices.shape + self.shape[(axis + 1)...]
บันทึก
บน CPU หากพบดัชนีที่อยู่นอกช่วง ข้อผิดพลาดจะเกิดขึ้น บน GPU หากพบดัชนีที่อยู่นอกช่วง 0 จะถูกเก็บไว้ในค่าเอาต์พุตที่เกี่ยวข้อง
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
คำประกาศ
@differentiable(wrt: self) public func gathering<Index: TensorFlowIndex>( atIndices indices: Tensor<Index>, alongAxis axis: Int = 0 ) -> Tensor
พารามิเตอร์
indices
ประกอบด้วยดัชนีที่จะรวบรวมที่
axis
มิติที่จะรวบรวม ค่าลบล้อมรอบ
ค่าส่งคืน
เทนเซอร์ที่รวบรวม
ส่งกลับส่วนของเมตริกซ์นี้ที่ดัชนีตาม
indices
axis
ไม่สนใจมิติข้อมูลbatchDimensionCount
แรกซึ่งสอดคล้องกับมิติข้อมูลชุดงาน การรวบรวมจะดำเนินการตามมิติที่ไม่ใช่ชุดงานแรกดำเนินการฟังก์ชันที่คล้ายกันเพื่อ
gathering
ยกเว้นว่ารูปร่างเทนเซอร์ที่ได้คือตอนนี้shape[..<axis] + indices.shape[batchDimensionCount...] + shape[(axis + 1)...]
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง-rank..<rank
ในขณะที่batchDimensionCount
มากกว่าหรือเท่ากับเงื่อนไขเบื้องต้น
batchDimensionCount
ต้องน้อยกว่าindices.rank
คำประกาศ
@differentiable(wrt: self) public func batchGathering<Index: TensorFlowIndex>( atIndices indices: Tensor<Index>, alongAxis axis: Int = 1, batchDimensionCount: Int = 1 ) -> Tensor
พารามิเตอร์
indices
ประกอบด้วยดัชนีที่จะรวบรวม
axis
มิติที่จะรวบรวม ค่าลบล้อมรอบ
batchDimensionCount
จำนวนมิติแบทช์ชั้นนำที่จะละเว้น
ค่าส่งคืน
เทนเซอร์ที่รวบรวม
ส่งกลับเทนเซอร์โดยการรวบรวมค่าหลังจากใช้มาสก์บูลีนที่ให้มากับอินพุต
ตัวอย่างเช่น:
// 1-D example // tensor is [0, 1, 2, 3] // mask is [true, false, true, false] tensor.gathering(where: mask) // is [0, 2] // 2-D example // tensor is [[1, 2], [3, 4], [5, 6]] // mask is [true, false, true] tensor.gathering(where: mask) // is [[1, 2], [5, 6]]
โดยทั่วไป
0 < mask.rank = K <= tensor.rank
และรูปร่างของmask
จะต้องตรงกับมิติ K แรกของรูปร่างของtensor
จากนั้นเรามี:tensor.gathering(where: mask)[i, j1, ..., jd] = tensor[i1, ..., iK, j1, ..., jd]
โดยที่[i1, ..., iK]
คือรายการtrue
ของmask
i
(ลำดับหลักแถว)axis
สามารถใช้กับmask
เพื่อระบุแกนที่จะมาสก์ได้ ในกรณีนั้นaxis + mask.rank <= tensor.rank
และ's shape must match the first
mask
แกนแรก + mask.rankdimensions of the
รูปร่างของเทนเซอร์เงื่อนไขเบื้องต้น
mask
ไม่สามารถเป็นสเกลาร์ได้:mask.rank != 0
คำประกาศ
@differentiable(wrt: self) public func gathering(where mask: Tensor<Bool>, alongAxis axis: Int = 0) -> Tensor
พารามิเตอร์
mask
KD บูลีนเทนเซอร์ โดยที่
K <= self.rank
axis
เทนเซอร์จำนวนเต็ม 0-D แทนแกนใน
self
เพื่อมาส์ก โดยที่K + axis <= self.rank
ค่าส่งคืน
(self.rank - K + 1)
-มิติเทนเซอร์ที่เติมโดยรายการในเทนเซอร์นี้ซึ่งสอดคล้องกับค่าtrue
ในmask
ส่งกลับตำแหน่งของค่าที่ไม่ใช่ศูนย์ / ค่าจริงในเทนเซอร์นี้
พิกัดจะถูกส่งกลับในเมตริกซ์ 2 มิติ โดยที่มิติแรก (แถว) แสดงถึงจำนวนขององค์ประกอบที่ไม่เป็นศูนย์ และมิติที่สอง (คอลัมน์) แสดงถึงพิกัดขององค์ประกอบที่ไม่เป็นศูนย์ โปรดทราบว่ารูปร่างของเทนเซอร์เอาท์พุตอาจแตกต่างกันไปขึ้นอยู่กับจำนวนค่าจริงที่มีอยู่ในเทนเซอร์นี้ ดัชนีจะถูกส่งออกตามลำดับแถวหลัก
ตัวอย่างเช่น:
// 'input' is [[true, false], [true, false]] // 'input' has 2 true values and so the output has 2 rows. // 'input' has rank of 2, and so the second dimension of the output has size 2. input.nonZeroIndices() // is [[0, 0], [1, 0]] // 'input' is [[[ true, false], [ true, false]], // [[false, true], [false, true]], // [[false, false], [false, true]]] // 'input' has 5 true values and so the output has 5 rows. // 'input' has rank 3, and so the second dimension of the output has size 3. input.nonZeroIndices() // is [[0, 0, 0], // [0, 1, 0], // [1, 0, 1], // [1, 1, 1], // [2, 1, 1]]
คำประกาศ
public func nonZeroIndices() -> Tensor<Int64>
ค่าส่งคืน
เทนเซอร์ที่มีรูปร่าง
(num_true, rank(condition))
คำประกาศ
@differentiable(wrt: self) public func broadcasted(toShape shape: Tensor<Int32>) -> Tensor
คำประกาศ
@differentiable(wrt: self) public func broadcasted(to shape: TensorShape) -> Tensor
ออกอากาศเป็นรูปร่างเดียวกับ
Tensor
ที่ระบุเงื่อนไขเบื้องต้น
รูปร่างที่กำหนดจะต้องเข้ากันได้สำหรับการออกอากาศคำประกาศ
@differentiable(wrt: self) public func broadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
คำประกาศ
public static func .= (lhs: inout Tensor, rhs: Tensor)
แยกชิ้นส่วนออกจากเมตริกซ์ที่กำหนดโดยขอบเขตล่างและบนสำหรับแต่ละมิติ
คำประกาศ
@differentiable(wrt: self) public func slice(lowerBounds: [Int], upperBounds: [Int]) -> Tensor
พารามิเตอร์
lowerBounds
ขอบเขตล่างของแต่ละมิติ
upperBounds
ขอบเขตบนของแต่ละมิติ
คำประกาศ
@differentiable(wrt: self) public func slice(lowerBounds: Tensor<Int32>, sizes: Tensor<Int32>) -> Tensor
คำประกาศ
@differentiable(wrt: self) public func slice(lowerBounds: [Int], sizes: [Int]) -> Tensor
คำประกาศ
@differentiable(wrt: self) public subscript(ranges: TensorRangeExpression...) -> Tensor { get set }
ตรวจสอบว่าแต่ละองค์ประกอบของ
axes
แสดงถึงแกนของself
และหยุดโปรแกรมด้วยการวินิจฉัยอย่างอื่นคำประกาศ
func ensureValid( axes: Tensor<Int32>, function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
ตรวจสอบว่าแต่ละองค์ประกอบของ
axes
แสดงถึงแกนของself
และหยุดโปรแกรมด้วยการวินิจฉัยอย่างอื่นคำประกาศ
func ensureValid( axes: [Int], function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
ตรวจสอบว่า
k
หมายถึงแกนของself
และหยุดโปรแกรมด้วยการวินิจฉัยอย่างอื่นคำประกาศ
func ensureValid( axis k: Int, function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
คำประกาศ
public init<BatchSamples: Collection>(collating samples: BatchSamples) where BatchSamples.Element == Self
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุและค่าสเกลาร์ค่าเดียวที่ซ้ำกัน
คำประกาศ
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: TensorShape, repeating repeatedValue: Scalar)
พารามิเตอร์
shape
ขนาดของเทนเซอร์
repeatedValue
ค่าสเกลาร์ที่จะทำซ้ำ
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุและค่าสเกลาร์ค่าเดียวที่ซ้ำกัน
คำประกาศ
@differentiable public init( repeating repeatedValue: Scalar, shape: TensorShape, on device: Device = .default )
พารามิเตอร์
repeatedValue
ค่าสเกลาร์ที่จะทำซ้ำ
shape
ขนาดของเทนเซอร์
สร้างเมตริกซ์โดยการถ่ายทอดสเกลาร์ที่กำหนดไปยังอันดับที่กำหนดโดยมิติทั้งหมดเป็น 1
คำประกาศ
public init(broadcasting scalar: Scalar, rank: Int, on device: Device = .default)
สร้างเมตริกซ์จากอาร์เรย์เทนเซอร์ (ซึ่งอาจเป็นสเกลาร์)
คำประกาศ
@differentiable public init(_ elements: [Tensor])
ซ้อนเท
tensors
ตามขนาดaxis
ให้เป็นเทนเซอร์ใหม่โดยมีอันดับสูงกว่าเทนเซอร์ปัจจุบันหนึ่งอันดับ และเทนเซอร์แต่ละตัวอยู่ในtensors
เนื่องจาก
tensors
ทั้งหมดมีรูปร่าง[A, B, C]
และtensors.count = N
ดังนั้น:- ถ้า
axis == 0
ดังนั้นเทนเซอร์ที่ได้จะมีรูปร่าง[N, A, B, C]
- ถ้า
axis == 1
ดังนั้นเทนเซอร์ที่ได้จะมีรูปร่าง[A, N, B, C]
- ฯลฯ
ตัวอย่างเช่น:
// 'x' is [1, 4] // 'y' is [2, 5] // 'z' is [3, 6] Tensor(stacking: [x, y, z]) // is [[1, 4], [2, 5], [3, 6]] Tensor(stacking: [x, y, z], alongAxis: 1) // is [[1, 2, 3], [4, 5, 6]]
นี่คือสิ่งที่ตรงกันข้ามกับ
Tensor.unstacked(alongAxis:)
เงื่อนไขเบื้องต้น
เทนเซอร์ทั้งหมดจะต้องมีรูปร่างเหมือนกัน
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
โดยที่rank
คืออันดับของเทนเซอร์ที่ให้มาคำประกาศ
@differentiable public init(stacking tensors: [Tensor], alongAxis axis: Int = 0)
พารามิเตอร์
tensors
เทนเซอร์ที่จะกองซ้อน
axis
มิติตามที่จะกองซ้อน ค่าลบล้อมรอบ
ค่าส่งคืน
เทนเซอร์แบบเรียงซ้อน
- ถ้า
เชื่อมต่อ
tensors
ตามมิติaxis
เมื่อพิจารณาว่า
tensors[i].shape = [D0, D1, ... Daxis(i), ...Dn]
ดังนั้นผลลัพธ์ที่ต่อกันจะมีรูปร่าง[D0, D1, ... Raxis, ...Dn]
, โดยที่Raxis = sum(Daxis(i))
. นั่นคือข้อมูลจากเทนเซอร์อินพุตจะถูกรวมเข้ากับมิติaxis
ตัวอย่างเช่น:
// t1 is [[1, 2, 3], [4, 5, 6]] // t2 is [[7, 8, 9], [10, 11, 12]] Tensor(concatenating: [t1, t2]) // is [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] Tensor(concatenating: [t1, t2], alongAxis: 1) // is [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]] // t3 has shape [2, 3] // t4 has shape [2, 3] Tensor(concatenating: [t3, t4]) // has shape [4, 3] Tensor(concatenating: [t3, t4], alongAxis: 1) // has shape [2, 6]
บันทึก
หากคุณกำลังเชื่อมต่อไปตามแกนใหม่ให้พิจารณาใช้
Tensor.init(stacking:alongAxis:)
เงื่อนไขเบื้องต้น
เทนเซอร์ทั้งหมดต้องมีอันดับเดียวกันและมิติทั้งหมดยกเว้น
axis
จะต้องเท่ากันเงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง[-rank, rank)
โดยที่rank
คืออันดับของเทนเซอร์ที่ให้มาคำประกาศ
@differentiable public init(concatenating tensors: [Tensor], alongAxis axis: Int = 0)
พารามิเตอร์
tensors
เทนเซอร์ที่จะเชื่อมต่อกัน
axis
มิติที่จะต่อกัน ค่าลบล้อมรอบ
ค่าส่งคืน
เทนเซอร์ที่ต่อกัน
แทนที่องค์ประกอบของเทนเซอร์นี้ด้วย
other
ในเลนที่mask
เป็นtrue
เงื่อนไขเบื้องต้น
self
และother
ต้องมีรูปร่างเหมือนกัน ถ้าself
และother
เป็นสเกลาร์mask
ก็ต้องเป็นสเกลาร์ด้วย หากself
และother
มีอันดับมากกว่าหรือเท่ากับ1
ดังนั้นmask
จะต้องมีรูปร่างเหมือนกับself
หรือเป็น 1-DTensor
โดยที่mask.scalarCount == self.shape[0]
คำประกาศ
@differentiable(wrt: (self, other) ) public func replacing(with other: Tensor, where mask: Tensor<Bool>) -> Tensor
คืนค่าเป็นจริงหากประเภทสเกลาร์ทางกายภาพลดความแม่นยำลง
ในปัจจุบัน ประเภทสเกลาร์ทางกายภาพที่มีความแม่นยำลดลงจะรวมเฉพาะ
BFloat16
เท่านั้นคำประกาศ
public var isReducedPrecision: Bool { get }
เลื่อนระดับสเกลาร์ไปยังเทนเซอร์ด้วยอุปกรณ์และความแม่นยำเดียวกันกับเทนเซอร์ที่กำหนด
คำประกาศ
@differentiable public init(_ value: Scalar, deviceAndPrecisionLike tensor: Tensor)
ส่งกลับสำเนาของการแปลง
self
เป็นประเภทสเกลาร์ฟิสิคัลBFloat16
คำประกาศ
public var toReducedPrecision: `Self` { get }
ส่งกลับสำเนาของประเภทสเกลาร์ฟิสิคัลที่แปลง
self
เป็นScalar
คำประกาศ
public var toFullPrecision: `Self` { get }
จำนวนมิติของ
Tensor
คำประกาศ
public var rank: Int { get }
รูปร่างของ
Tensor
คำประกาศ
public var shape: TensorShape { get }
จำนวนสเกลาร์ใน
Tensor
คำประกาศ
public var scalarCount: Int { get }
อันดับของเทนเซอร์ ซึ่งแสดงเป็น
Tensor<Int32>
คำประกาศ
public var rankTensor: Tensor<Int32> { get }
ขนาดของเทนเซอร์ซึ่งแสดงเป็น
Tensor<Int32>
คำประกาศ
public var shapeTensor: Tensor<Int32> { get }
จำนวนสเกลาร์ในเทนเซอร์ ซึ่งแสดงเป็น
Tensor<Int32>
คำประกาศ
public var scalarCountTensor: Tensor<Int32> { get }
คืนค่า
true
หากrank
เท่ากับ 0 และคืนค่าเป็นfalse
คำประกาศ
public var isScalar: Bool { get }
ส่งคืนองค์ประกอบสเกลาร์เดี่ยวหาก
rank
เท่ากับ 0 มิฉะนั้นnil
คำประกาศ
public var scalar: Scalar? { get }
ปรับรูปร่างให้เป็นสเกลาร์
เงื่อนไขเบื้องต้น
เทนเซอร์มีสเกลาร์หนึ่งตัวพอดีคำประกาศ
@differentiable public func scalarized() -> Scalar
คำประกาศ
public var array: ShapedArray<Scalar> { get }
คำประกาศ
@differentiable public var scalars: [Scalar] { get }
สร้างเมตริกซ์ 0-D จากค่าสเกลาร์
คำประกาศ
@differentiable public init(_ value: Scalar, on device: Device = .default)
สร้างเทนเซอร์ 1 มิติจากสเกลาร์
คำประกาศ
@differentiable public init(_ scalars: [Scalar], on device: Device = .default)
สร้างเทนเซอร์ 1 มิติจากสเกลาร์
คำประกาศ
public init<C: Collection>( _ vector: C, on device: Device = .default ) where C.Element == Scalar
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุและสเกลาร์ที่อยู่ติดกันในลำดับหลักแถว
เงื่อนไขเบื้องต้น
ผลคูณของขนาดของรูปร่างต้องเท่ากับจำนวนสเกลาร์คำประกาศ
@differentiable public init(shape: TensorShape, scalars: [Scalar], on device: Device = .default)
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
scalars
เนื้อหาสเกลาร์ของเทนเซอร์
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุและสเกลาร์ที่อยู่ติดกันในลำดับหลักแถว
เงื่อนไขเบื้องต้น
ผลคูณของขนาดของรูปร่างต้องเท่ากับจำนวนสเกลาร์คำประกาศ
public init( shape: TensorShape, scalars: UnsafeBufferPointer<Scalar>, on device: Device = .default )
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
scalars
เนื้อหาสเกลาร์ของเทนเซอร์
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุและสเกลาร์ที่อยู่ติดกันในลำดับหลักแถว
เงื่อนไขเบื้องต้น
ผลคูณของขนาดของรูปร่างต้องเท่ากับจำนวนสเกลาร์สร้างเมตริกซ์ที่มีรูปร่างที่ระบุและสเกลาร์ที่อยู่ติดกันในลำดับหลักแถว
เงื่อนไขเบื้องต้น
ผลคูณของขนาดของรูปร่างต้องเท่ากับจำนวนสเกลาร์คำประกาศ
public init<C: Collection>( shape: TensorShape, scalars: C, on device: Device = .default ) where C.Element == Scalar
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
scalars
เนื้อหาสเกลาร์ของเทนเซอร์
ประเภทขององค์ประกอบของอาร์เรย์ตามตัวอักษร
คำประกาศ
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
สร้างเทนเซอร์ที่เริ่มต้นด้วยองค์ประกอบที่กำหนด
คำประกาศ
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
การแสดงข้อความของเทนเซอร์
บันทึก
ใช้fullDescription
สำหรับคำอธิบายที่ไม่สวยงามซึ่งแสดงสเกลาร์ทั้งหมดคำประกาศ
public var description: String { get }
การแสดงข้อความของเทนเซอร์ ส่งคืนคำอธิบายโดยสรุป หาก
summarize
เป็นจริงและจำนวนองค์ประกอบเกินสองเท่าของedgeElementCount
คำประกาศ
public func description( lineWidth: Int = 80, edgeElementCount: Int = 3, summarizing: Bool = false ) -> String
พารามิเตอร์
lineWidth
ความกว้างบรรทัดสูงสุดสำหรับการพิมพ์ ใช้เพื่อกำหนดจำนวนสเกลาร์ที่จะพิมพ์ต่อบรรทัด
edgeElementCount
จำนวนองค์ประกอบสูงสุดที่จะพิมพ์ก่อนและหลังการสรุปโดยใช้จุดไข่ปลา (
...
)summarizing
หากเป็นจริง ให้สรุปคำอธิบายหากจำนวนองค์ประกอบเกิน 2 เท่า
edgeElementCount
การแสดงข้อความเทนเซอร์แบบเต็มและพิมพ์ไม่สวยงาม โดยแสดงสเกลาร์ทั้งหมด
คำประกาศ
public var fullDescription: String { get }
คำประกาศ
public var playgroundDescription: Any { get }
คำประกาศ
public var customMirror: Mirror { get }
คำอธิบายประกอบที่อธิบายเทนเซอร์นี้
คำประกาศ
public var annotations: String { get }
นามแฝงสำหรับคำอธิบายประกอบ
คำประกาศ
public var summary: String { get }
คำประกาศ
public init(_owning tensorHandles: UnsafePointer<CTensorHandle>?)
คำประกาศ
public init<C: RandomAccessCollection>( _handles: C ) where C.Element: _AnyTensorHandle
คำประกาศ
public init(_ array: ShapedArray<Scalar>, on device: Device = .default)
คำประกาศ
init(_xla: XLATensor)
คำประกาศ
init(_xlaHandle: UnsafeMutablePointer<OpaqueXLATensor>)
คำประกาศ
var xlaHandle: UnsafeMutablePointer<OpaqueXLATensor> { get }
คำประกาศ
var xlaTensor: XLATensor { get }
คำประกาศ
@differentiable(wrt: self) public func unbroadcasted(toShape otherShape: Tensor<Int32>) -> Tensor
คำประกาศ
@differentiable(wrt: self) public func unbroadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
คำประกาศ
@differentiable(wrt: self) public func unbroadcasted(to shape: TensorShape) -> Tensor
โหมดที่กำหนดวิธีการบุนวมเทนเซอร์
คำประกาศ
public enum PaddingMode
ส่งกลับเทนเซอร์ที่บุด้วยค่าคงที่ตามขนาดช่องว่างภายในที่ระบุ
คำประกาศ
@differentiable(wrt: self) public func padded(forSizes sizes: [(before: Int, after: Int)], with value: Scalar = 0) -> Tensor
ส่งกลับเทนเซอร์ที่บุนวมตามขนาดและโหมดการบุนวมที่ระบุ
คำประกาศ
@differentiable(wrt: self) public func padded(forSizes sizes: [(before: Int, after: Int)], mode: PaddingMode) -> Tensor
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs < rhs
element-wiseคำประกาศ
public static func .< (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs <= rhs
element-wiseคำประกาศ
public static func .<= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs > rhs
element-wiseคำประกาศ
public static func .> (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs >= rhs
element-wiseคำประกาศ
public static func .>= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs < rhs
element-wiseบันทึก
.<
รองรับการออกอากาศคำประกาศ
public static func .< (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs <= rhs
element-wiseบันทึก
.<=
รองรับการออกอากาศคำประกาศ
public static func .<= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs > rhs
element-wiseบันทึก
.>
รองรับการออกอากาศคำประกาศ
public static func .> (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs >= rhs
element-wiseบันทึก
.>=
รองรับการออกอากาศคำประกาศ
public static func .>= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs < rhs
element-wiseบันทึก
.<
รองรับการออกอากาศคำประกาศ
public static func .< (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs <= rhs
element-wiseบันทึก
.<=
รองรับการออกอากาศคำประกาศ
public static func .<= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์บูลีนโดยการคำนวณ
lhs > rhs
element-wiseบันทึก
.>
รองรับการออกอากาศคำประกาศ
public static func .> (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs >= rhs
element-wiseบันทึก
.>=
รองรับการออกอากาศคำประกาศ
public static func .>= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs == rhs
element-wiseบันทึก
.==
รองรับการออกอากาศคำประกาศ
public static func .== (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs != rhs
element-wiseบันทึก
.!=
รองรับการออกอากาศคำประกาศ
public static func .!= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs == rhs
element-wiseบันทึก
.==
รองรับการออกอากาศคำประกาศ
public static func .== (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs != rhs
element-wiseบันทึก
.!=
รองรับการออกอากาศคำประกาศ
public static func .!= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs == rhs
element-wiseบันทึก
.==
รองรับการออกอากาศคำประกาศ
public static func .== (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของสเกลาร์แบบบูลีนโดยการคำนวณ
lhs != rhs
element-wiseบันทึก
.!=
รองรับการออกอากาศคำประกาศ
public static func .!= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
ส่งกลับเทนเซอร์ของค่าบูลีนที่ระบุว่าองค์ประกอบของ
self
มีค่าเท่ากับองค์ประกอบother
โดยประมาณหรือไม่เงื่อนไขเบื้องต้น
self
และother
จะต้องมีรูปร่างเหมือนกันคำประกาศ
public func elementsAlmostEqual( _ other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Tensor<Bool>
คืนค่า
true
หากองค์ประกอบทั้งหมดของself
มีค่าเท่ากับองค์ประกอบother
โดยประมาณเงื่อนไขเบื้องต้น
self
และother
จะต้องมีรูปร่างเหมือนกันคำประกาศ
public func isAlmostEqual( to other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Bool
เรียกใช้ผลรวมการจำลองแบบข้ามสำหรับเทนเซอร์นี้ ผลรวมการจำลองแบบเดียวกันจะต้องเกิดขึ้นบนอุปกรณ์แต่ละเครื่องที่เข้าร่วมในผลรวม
คำประกาศ
public mutating mutating func crossReplicaSum(_ scale: Double)
คำประกาศ
@derivative init(repeating: shape)
ทำการแปลงประเภทองค์ประกอบจาก
Bool
tensorคำประกาศ
public init(_ other: Tensor<Bool>)
ทำการแปลงตามองค์ประกอบจาก
Tensor
อื่นคำประกาศ
@differentiable public init<OtherScalar>(_ other: Tensor<OtherScalar>) where OtherScalar : Numeric, OtherScalar : TensorFlowScalar
คำประกาศ
@derivative init(_: <<error type>>)
คำประกาศ
@derivative init(stacking: alongAxis)
คำประกาศ
@derivative init(concatenating: alongAxis)
สร้างเทนเซอร์โดยตั้งค่าสเกลาร์ทั้งหมดเป็นศูนย์
คำประกาศ
public init(zeros shape: TensorShape, on device: Device = .default)
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
สร้างเทนเซอร์โดยตั้งค่าสเกลาร์ทั้งหมดเป็นหนึ่ง
คำประกาศ
public init(ones shape: TensorShape, on device: Device = .default)
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
สร้างเทนเซอร์โดยตั้งค่าสเกลาร์ทั้งหมดเป็นศูนย์ซึ่งมีรูปร่างและประเภทเดียวกันกับเทนเซอร์ที่ให้มา
คำประกาศ
public init(zerosLike other: Tensor)
พารามิเตอร์
other
เทนเซอร์ที่มีรูปร่างและประเภทข้อมูลที่จะใช้
สร้างเทนเซอร์โดยตั้งค่าสเกลาร์ทั้งหมดให้เป็นเมตริกซ์ที่มีรูปร่างและประเภทเดียวกันกับเทนเซอร์ที่ให้มา
คำประกาศ
public init(onesLike other: Tensor)
พารามิเตอร์
other
เทนเซอร์ที่มีรูปร่างและประเภทข้อมูลที่จะใช้
สร้างเมตริกซ์ 1-D แทนลำดับจากค่าเริ่มต้นถึงแต่ไม่รวมค่าสิ้นสุด โดยก้าวตามจำนวนที่ระบุ
คำประกาศ
public init( rangeFrom start: Scalar, to end: Scalar, stride: Scalar, on device: Device = .default )
พารามิเตอร์
start
ค่าเริ่มต้นที่จะใช้สำหรับลำดับ หากลำดับมีค่าใดๆ ค่าแรกจะเป็น
start
end
ค่าสิ้นสุดเพื่อจำกัดลำดับ
end
ไม่เคยเป็นส่วนหนึ่งของลำดับผลลัพธ์stride
จำนวนที่ต้องดำเนินการในแต่ละการวนซ้ำ
stride
จะต้องเป็นบวกสร้างเมตริกซ์ 1-D แทนลำดับจากค่าเริ่มต้นถึงแต่ไม่รวมค่าสิ้นสุด โดยก้าวตามจำนวนที่ระบุ
คำประกาศ
public init(rangeFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, stride: Tensor<Scalar>)
พารามิเตอร์
start
ค่าเริ่มต้นที่จะใช้สำหรับลำดับ หากลำดับมีค่าใดๆ ค่าแรกจะเป็น
start
end
ค่าสิ้นสุดเพื่อจำกัดลำดับ
end
ไม่เคยเป็นส่วนหนึ่งของลำดับผลลัพธ์stride
จำนวนที่ต้องดำเนินการในแต่ละการวนซ้ำ
stride
จะต้องเป็นบวกสร้างเทนเซอร์แบบร้อนแรงที่ดัชนีที่กำหนด ตำแหน่งที่แสดงโดย
indices
จะใช้ค่าonValue
(1
โดยค่าเริ่มต้น) ในขณะที่ตำแหน่งอื่นๆ ทั้งหมดจะใช้ค่าoffValue
(0
โดยค่าเริ่มต้น) หากindices
อินพุตอยู่ในอันดับn
เทนเซอร์ใหม่จะมีอันดับn+1
แกนใหม่จะถูกสร้างขึ้นที่axis
มิติ (ตามค่าเริ่มต้น แกนใหม่จะถูกต่อท้ายที่ส่วนท้าย)หาก
indices
เป็นสเกลาร์ รูปร่างของเทนเซอร์ใหม่จะเป็นเวกเตอร์ที่มีความยาวdepth
หาก
indices
เป็นเวกเตอร์ของfeatures
ความยาว รูปร่างผลลัพธ์จะเป็น: คุณลักษณะ x ความลึก ถ้าแกน == -1 ความลึก x คุณลักษณะ ถ้าแกน == 0หาก
indices
เป็นเมทริกซ์ (แบทช์) ที่มีรูปร่าง[batch, features]
รูปร่างผลลัพธ์จะเป็น: แบทช์ x คุณสมบัติ x ความลึก, ถ้าแกน == -1 แบทช์ x ความลึก x คุณสมบัติ, ถ้าแกน == 1 ความลึก x แบทช์ x คุณสมบัติ ถ้าแกน == 0คำประกาศ
public init( oneHotAtIndices indices: Tensor<Int32>, depth: Int, onValue: Scalar = 1, offValue: Scalar = 0, axis: Int = -1 )
พารามิเตอร์
indices
Tensor
ของดัชนีdepth
สเกลาร์ที่กำหนดความลึกของมิติร้อนหนึ่งมิติ
onValue
สเกลาร์ที่กำหนดค่า ณ ตำแหน่งที่อ้างอิงโดยดัชนีบางตัวใน
indices
offValue
สเกลาร์ที่กำหนดค่า ณ ตำแหน่งที่ไม่ได้อ้างอิงโดยดัชนีใดๆ ใน
indices
axis
แกนที่จะเติม ค่าเริ่มต้นคือ
-1
ซึ่งเป็นแกนในสุดใหม่
สร้างเมตริกซ์ 1-D ที่แสดงลำดับตั้งแต่ค่าเริ่มต้น จนถึงและรวมถึงค่าสิ้นสุด โดยเว้นระยะห่างเท่าๆ กันเพื่อสร้างจำนวนค่าที่ระบุ
คำประกาศ
public init( linearSpaceFrom start: Scalar, to end: Scalar, count: Int, on device: Device = .default )
พารามิเตอร์
start
ค่าเริ่มต้นที่จะใช้สำหรับลำดับ หากลำดับมีค่าใดๆ ค่าแรกจะเป็น
start
end
ค่าสิ้นสุดเพื่อจำกัดลำดับ
end
คือองค์ประกอบสุดท้ายของลำดับผลลัพธ์count
จำนวนค่าในลำดับผลลัพธ์
count
จะต้องเป็นบวกสร้างเมตริกซ์ 1-D ที่แสดงลำดับตั้งแต่ค่าเริ่มต้น จนถึงและรวมถึงค่าสิ้นสุด โดยเว้นระยะห่างเท่าๆ กันเพื่อสร้างจำนวนค่าที่ระบุ
เงื่อนไขเบื้องต้น
start
,to
และcount
ต้องเป็น Tensors ที่มีค่าสเกลาร์ค่าเดียวคำประกาศ
public init(linearSpaceFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, count: Tensor<Int32>)
พารามิเตอร์
start
ค่าเริ่มต้นที่จะใช้สำหรับลำดับ หากลำดับมีค่าใดๆ ค่าแรกจะเป็น
start
end
ค่าสิ้นสุดเพื่อจำกัดลำดับ
end
คือองค์ประกอบสุดท้ายของลำดับผลลัพธ์count
จำนวนค่าในลำดับผลลัพธ์
count
จะต้องเป็นบวก
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุ โดยสุ่มสุ่มตัวอย่างค่าสเกลาร์จากการกระจายแบบสม่ำเสมอระหว่าง
lowerBound
และupperBound
คำประกาศ
public init( randomUniform shape: TensorShape, lowerBound: Tensor<Scalar>? = nil, upperBound: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
lowerBound
ขอบเขตล่างของการแจกแจง
upperBound
ขอบเขตบนของการแจกแจง
seed
มูลค่าเมล็ดพันธุ์
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุ โดยสุ่มสุ่มตัวอย่างค่าสเกลาร์จากการกระจายแบบสม่ำเสมอระหว่าง
lowerBound
และupperBound
คำประกาศ
public init( randomUniform shape: TensorShape, lowerBound: Tensor<Scalar>? = nil, upperBound: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
lowerBound
ขอบเขตล่างของการแจกแจง
upperBound
ขอบเขตบนของการแจกแจง
seed
คุณค่าของเมล็ดพันธุ์
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุ โดยสุ่มตัวอย่างค่าสเกลาร์จากการแจกแจงแบบปกติ
คำประกาศ
public init( randomNormal shape: TensorShape, mean: Tensor<Scalar>? = nil, standardDeviation: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
mean
ค่าเฉลี่ยของการกระจายตัว
standardDeviation
ค่าเบี่ยงเบนมาตรฐานของการแจกแจง
seed
มูลค่าเมล็ดพันธุ์
สร้างเมตริกซ์ที่มีรูปร่างที่ระบุ โดยสุ่มสุ่มตัวอย่างค่าสเกลาร์จากการแจกแจงแบบปกติที่ถูกตัดทอน
คำประกาศ
public init( randomTruncatedNormal shape: TensorShape, mean: Tensor<Scalar>? = nil, standardDeviation: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
mean
ค่าเฉลี่ยของการกระจายตัว
standardDeviation
ค่าเบี่ยงเบนมาตรฐานของการแจกแจง
seed
มูลค่าเมล็ดพันธุ์
สร้างเทนเซอร์โดยการวาดตัวอย่างจากการแจกแจงแบบหมวดหมู่
คำประกาศ
public init<T: TensorFlowFloatingPoint>( randomCategorialLogits: Tensor<T>, sampleCount: Int32, seed: TensorFlowSeed = Context.local.randomSeed )
พารามิเตอร์
randomCategorialLogits
เทนเซอร์ 2 มิติที่มีรูปร่าง
[batchSize, classCount]
แต่ละชิ้น[i, :]
แสดงถึงความน่าจะเป็นของบันทึกที่ไม่ปกติสำหรับทุกคลาสsampleCount
0-D. จำนวนตัวอย่างอิสระที่จะวาดสำหรับแต่ละชิ้นแถว
seed
คุณค่าของเมล็ดพันธุ์
ค่าส่งคืน
เทนเซอร์ 2 มิติที่มีรูปร่าง
[batchSize, sampleCount]
แต่ละชิ้น[i, :]
มีป้ายกำกับคลาสที่วาดซึ่งมีช่วง[0, classCount)
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุโดยดำเนินการกำหนดค่าเริ่มต้นแบบสม่ำเสมอของ Glorot (Xavier)
มันดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบสม่ำเสมอระหว่าง
-limit
และlimit
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่limit
คือsqrt(6 / (fanIn + fanOut))
และfanIn
/fanOut
แสดงถึงจำนวนของคุณสมบัติอินพุตและเอาต์พุตคูณด้วยตัวรับ ขนาดสนามข้อมูลอ้างอิง: “การทำความเข้าใจความยากลำบากในการฝึกโครงข่ายประสาทเทียมแบบป้อนลึก”
คำประกาศ
public init( glorotUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
คุณค่าของเมล็ดพันธุ์
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุโดยดำเนินการกำหนดค่าเริ่มต้นตามปกติของ Glorot (Xavier)
มันดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบปกติที่ถูกตัดทอนซึ่งมีศูนย์กลางอยู่ที่
0
โดยมีค่าเบี่ยงเบนมาตรฐานsqrt(2 / (fanIn + fanOut))
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่fanIn
/fanOut
แทนจำนวนคุณลักษณะอินพุตและเอาต์พุตคูณด้วยฟิลด์ที่รับ ขนาด.ข้อมูลอ้างอิง: “การทำความเข้าใจความยากลำบากในการฝึกโครงข่ายประสาทเทียมแบบป้อนลึก”
คำประกาศ
public init( glorotNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
มูลค่าเมล็ดพันธุ์
สร้างเทนเซอร์ตามรูปร่างที่ระบุโดยดำเนินการกำหนดค่าเริ่มต้นแบบสม่ำเสมอของ He (Kaiming)
โดยดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบสม่ำเสมอระหว่าง
-limit
และlimit
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่limit
คือsqrt(6 / fanIn)
และfanIn
แสดงถึงจำนวนคุณลักษณะอินพุตคูณด้วยขนาดฟิลด์ที่รับข้อมูลอ้างอิง: “การเจาะลึกเข้าไปในวงจรเรียงกระแส: ประสิทธิภาพที่เหนือกว่าระดับมนุษย์ในการจำแนกประเภท ImageNet”
คำประกาศ
public init( heUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
มูลค่าเมล็ดพันธุ์
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุโดยดำเนินการการกำหนดค่าเริ่มต้นตามปกติของ He (Kaiming)
โดยดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบปกติที่ถูกตัดทอนโดยมีศูนย์กลางอยู่ที่
0
โดยมีค่าเบี่ยงเบนมาตรฐานsqrt(2 / fanIn))
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่fanIn
แทนจำนวนคุณลักษณะอินพุตคูณด้วยขนาดฟิลด์ที่รับข้อมูลอ้างอิง: “การเจาะลึกเข้าไปในวงจรเรียงกระแส: ประสิทธิภาพที่เหนือกว่าระดับมนุษย์ในการจำแนกประเภท ImageNet”
คำประกาศ
public init( heNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
มูลค่าเมล็ดพันธุ์
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุโดยดำเนินการเริ่มต้นเครื่องแบบ LeCun
โดยดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบสม่ำเสมอระหว่าง
-limit
และlimit
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่limit
คือsqrt(3 / fanIn)
และfanIn
แสดงถึงจำนวนคุณลักษณะอินพุตคูณด้วยขนาดฟิลด์ที่รับอ้างอิง: “BackProp ที่มีประสิทธิภาพ”
คำประกาศ
public init( leCunUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
มูลค่าเมล็ดพันธุ์
สร้างเทนเซอร์ที่มีรูปร่างที่ระบุโดยดำเนินการเริ่มต้นตามปกติของ LeCun
โดยดึงตัวอย่างแบบสุ่มจากการแจกแจงแบบปกติที่ถูกตัดทอนซึ่งมีศูนย์กลางอยู่ที่
0
โดยมีค่าเบี่ยงเบนมาตรฐานsqrt(1 / fanIn)
ที่สร้างโดยตัวสร้างตัวเลขสุ่มเริ่มต้น โดยที่fanIn
แทนจำนวนคุณลักษณะอินพุตคูณด้วยขนาดฟิลด์ที่เปิดกว้างอ้างอิง: “BackProp ที่มีประสิทธิภาพ”
คำประกาศ
public init( leCunNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
พารามิเตอร์
shape
ขนาดของเทนเซอร์
seed
คุณค่าของเมล็ดพันธุ์
สร้างเมทริกซ์มุมฉากหรือเมตริกซ์
หากรูปร่างของเมตริกซ์ที่จะเตรียมใช้งานเป็นสองมิติ ก็จะถูกเตรียมใช้งานด้วยเมทริกซ์มุมฉากที่ได้จากการแบ่งแยก QR ของเมทริกซ์ของตัวเลขสุ่มที่ดึงมาจากการแจกแจงแบบปกติ หากเมทริกซ์มีแถวน้อยกว่าคอลัมน์ ผลลัพธ์ก็จะมีแถวตั้งฉาก มิฉะนั้น ผลลัพธ์จะมีคอลัมน์ตั้งฉาก
หากรูปร่างของเทนเซอร์ที่จะเริ่มต้นมีค่ามากกว่าสองมิติ เมทริกซ์ของรูปร่าง
[shape[0] * ... * shape[rank - 2], shape[rank - 1]]
จะถูกเตรียมใช้งาน เมทริกซ์จะถูกปรับรูปร่างใหม่ในภายหลังเพื่อให้มีเทนเซอร์ของรูปร่างที่ต้องการคำประกาศ
public init( orthogonal shape: TensorShape, gain: Tensor<Scalar> = Tensor<Scalar>(1), seed: TensorFlowSeed = Context.local.randomSeed )
พารามิเตอร์
shape
รูปร่างของเทนเซอร์
gain
ตัวคูณคูณที่ใช้กับเทนเซอร์ตั้งฉาก
seed
สิ่งอันดับของจำนวนเต็มสองตัวเพื่อเริ่มต้นเครื่องกำเนิดตัวเลขสุ่ม
ส่งกลับค่าส่วนเส้นทแยงมุม [batched] ของเทนเซอร์ [batched] สำหรับอินสแตนซ์เทนเซอร์ของรูปร่าง
[..., M, N]
เอาต์พุตคือเทนเซอร์ของรูปร่าง[..., K]
โดยที่K
เท่ากับmin(N, M)
ตัวอย่างเช่น:
// 't' is [[1, 0, 0, 0] // [0, 2, 0, 0] // [0, 0, 3, 0] // [0, 0, 0, 4]] t.diagonalPart() // [1, 2, 3, 4]
คำประกาศ
@differentiable public func diagonalPart() -> Tensor
สร้างอาร์เรย์แนวทแยง [เป็นชุด] สำหรับตัวอย่างเทนเซอร์ของรูปร่าง
[..., M]
ผลลัพธ์จะเป็นเทนเซอร์ของรูปร่าง[..., M, M]
ตัวอย่างเช่น:
// 't' is [1, 2, 3, 4] t.diagonal() // [[1, 0, 0, 0] // [0, 2, 0, 0] // [0, 0, 3, 0] // [0, 0, 0, 4]]
คำประกาศ
@differentiable public func diagonal() -> Tensor
ส่งกลับ
self
ด้วยค่าเส้นทแยงมุมใหม่ โดยพิจารณาว่าself
เป็นเมทริกซ์แบบชุดหรือไม่ก็ได้เทนเซอร์ที่ส่งคืนจะมีรูปร่างและค่าเหมือนกับ
self
ยกเว้นเส้นทแยงมุมที่ระบุของเมทริกซ์ที่อยู่ด้านในสุดซึ่งจะถูกเขียนทับด้วยค่าในdiagonal
เส้นทแยงมุมของพารามิเตอร์: เทนเซอร์ที่มีอันดับ
rank - 1
แทนค่าเส้นทแยงมุมใหม่คำประกาศ
public func withDiagonal(_ diagonal: Tensor<Scalar>) -> Tensor
คำประกาศ
@differentiable(wrt: self) public func bandPart(_ subdiagonalCount: Int, _ superdiagonalCount: Int) -> Tensor
ส่งกลับสำเนาของเทนเซอร์ด้านในสุดที่กำหนดโดยขอบเขตแถบความถี่กลาง เอาต์พุตเป็นเทนเซอร์ที่มีรูปร่างเดียวกันกับอินสแตนซ์
[..., :, :]
ตัวอย่างเช่น:
// 't' is [[ 0, 1, 2, 3] // [-1, 0, 1, 2] // [-2, -1, 0, 1] // [-3, -2, -1, 0]] t.bandPart(1, -1) // [[ 0, 1, 2, 3] // [-1, 0, 1, 2] // [ 0, -1, 0, 1] // [ 0, 0, -1, 0]] t.bandPart(2, 1) // [[ 0, 1, 0, 0] // [-1, 0, 1, 0] // [-2, -1, 0, 1] // [ 0, -2, -1, 0]]
คำประกาศ
@differentiable public func bandPart(subdiagonalCount: Int, superdiagonalCount: Int) -> Tensor
พารามิเตอร์
subdiagonalCount
จำนวนเส้นทแยงมุมย่อยที่ต้องเก็บ หากเป็นลบ ให้คงรูปสามเหลี่ยมด้านล่างไว้ทั้งหมด
superdiagonalCount
จำนวนเส้นทแยงมุมเหนือที่ต้องเก็บ หากเป็นลบ ให้คงรูปสามเหลี่ยมด้านบนไว้ทั้งหมด
ส่งกลับการสลายตัวของ QR ของเมทริกซ์ด้านในแต่ละตัวในเทนเซอร์ เทนเซอร์ที่มีเมทริกซ์มุมฉากด้านใน
q
และเทนเซอร์ที่มีเมทริกซ์สามเหลี่ยมด้านบนด้านในr
โดยที่เทนเซอร์จะเท่ากับmatmul(q, r)
คำประกาศ
public func qrDecomposition(fullMatrices: Bool = false) -> ( q: Tensor<Scalar>, r: Tensor<Scalar> )
พารามิเตอร์
fullMatrices
ถ้า
true
ให้คำนวณขนาดเต็มq
และr
มิฉะนั้นคำนวณเฉพาะmin(shape[rank - 1], shape[rank - 2])
คอลัมน์คอลัมน์ของq
ส่งคืนการสลายตัวของ
self
เนื่องจากself
เป็นเมทริกซ์ที่เป็นตัวเลือกการสลายตัวของค่าเอกพจน์ (SVD) ของเมท
self
ซ์แบบแบทช์ตัวเลือกคือค่าs
,u
และv
เช่น:self[..., :, :] = u[..., :, :] • s[..., :, :].diagonal() • v[..., :, :].transposed()`
ตัวเอง
must be a tensor with shape
[…, m, n. Let
k = min (m, n) `เงื่อนไขเบื้องต้น
self
จะต้องเป็นเทนเซอร์ที่มีรูปร่าง[..., M, N]
การประกาศ
public func svd(computeUV: Bool = true, fullMatrices: Bool = false) -> ( s: Tensor<Scalar>, u: Tensor<Scalar>?, v: Tensor<Scalar>? )
พารามิเตอร์
computeUV
ถ้า
true
เวกเตอร์เอกพจน์ซ้ายและขวาจะถูกคำนวณและส่งคืนเป็นu
และv
ตามลำดับ หากfalse
ค่าnil
จะถูกส่งคืนเป็นu
และv
fullMatrices
ถ้า
true
u
และv
ตามลำดับมีรูปร่าง[..., M, M]
และ[..., N, N]
ถ้าfalse
u
และv
ตามลำดับมีรูปร่าง[..., M, K]
และ[..., K, N]
ละเว้นเมื่อcomputeUV
เป็นเท็จค่าส่งคืน
- S: ค่าเอกพจน์ที่มีรูปร่าง
[..., K]
ภายในแต่ละเวกเตอร์ค่าเอกพจน์จะถูกจัดเรียงตามลำดับจากมากไปน้อย - U: เวกเตอร์เอกพจน์ซ้าย
- V: เวกเตอร์เอกพจน์ที่ถูกต้อง
- S: ค่าเอกพจน์ที่มีรูปร่าง
รากที่สองของ
x
สำหรับประเภทจริงถ้า
x
เป็นลบผลลัพธ์คือ.nan
สำหรับประเภทที่ซับซ้อนมีการตัดกิ่งบนแกนจริงเชิงลบการประกาศ
@differentiable public static func sqrt(_ x: `Self`) -> Tensor<Scalar>
โคไซน์ของ
x
ตีความว่าเป็นมุมในเรเดียนการประกาศ
@differentiable public static func cos(_ x: `Self`) -> Tensor<Scalar>
ไซน์ของ
x
ตีความว่าเป็นมุมในเรเดียนการประกาศ
@differentiable public static func sin(_ x: `Self`) -> Tensor<Scalar>
แทนเจนต์ของ
x
ตีความว่าเป็นมุมในเรเดียนการประกาศ
@differentiable public static func tan(_ x: `Self`) -> Tensor<Scalar>
โคไซน์ผกผันของ
x
ในเรเดียนการประกาศ
@differentiable public static func acos(_ x: `Self`) -> Tensor<Scalar>
ไซน์ผกผันของ
x
ในเรเดียนการประกาศ
@differentiable public static func asin(_ x: `Self`) -> Tensor<Scalar>
แทนเจนต์ผกผันของ
x
ในเรเดียนการประกาศ
@differentiable public static func atan(_ x: `Self`) -> Tensor<Scalar>
โคไซน์ไฮเพอร์โบลิกของ
x
การประกาศ
@differentiable public static func cosh(_ x: `Self`) -> Tensor<Scalar>
ไซน์ไฮเพอร์โบลิกของ
x
การประกาศ
@differentiable public static func sinh(_ x: `Self`) -> Tensor<Scalar>
การใช้แทนเจนต์ไฮเพอร์โบลิกของ
x
การประกาศ
@differentiable public static func tanh(_ x: `Self`) -> Tensor<Scalar>
โคไซน์ไฮเพอร์โบลิกผกผันของ
x
การประกาศ
@differentiable public static func acosh(_ x: `Self`) -> Tensor<Scalar>
ไซน์ไฮเปอร์โบลิกผกผันของ
x
การประกาศ
@differentiable public static func asinh(_ x: `Self`) -> Tensor<Scalar>
แทนเจนต์ผกผันของ
x
การประกาศ
@differentiable public static func atanh(_ x: `Self`) -> Tensor<Scalar>
ฟังก์ชั่นเอ็กซ์โปเนนเชียลใช้กับ
x
หรือe**x
การประกาศ
@differentiable public static func exp(_ x: `Self`) -> Tensor<Scalar>
สองยกขึ้นสู่พลัง
x
การประกาศ
@differentiable public static func exp2(_ x: `Self`) -> Tensor<Scalar>
สิบยกขึ้นสู่พลัง
x
การประกาศ
@differentiable public static func exp10(_ x: `Self`) -> Tensor<Scalar>
exp(x) - 1
ประเมินเพื่อรักษาความแม่นยำใกล้กับศูนย์การประกาศ
@differentiable public static func expm1(_ x: `Self`) -> Tensor<Scalar>
ลอการิทึมธรรมชาติของ
x
การประกาศ
@differentiable public static func log(_ x: `Self`) -> Tensor<Scalar>
ลอการิทึมฐานสองของ
x
การประกาศ
@differentiable public static func log2(_ x: `Self`) -> Tensor<Scalar>
ลอการิทึมฐานสิบของ
x
การประกาศ
@differentiable public static func log10(_ x: `Self`) -> Tensor<Scalar>
log(1 + x)
ประเมินเพื่อรักษาความแม่นยำใกล้กับศูนย์การประกาศ
@differentiable public static func log1p(_ x: `Self`) -> Tensor<Scalar>
exp(y log(x))
คำนวณโดยไม่สูญเสียความแม่นยำระดับกลางสำหรับประเภทจริงถ้า
x
เป็นลบผลลัพธ์คือ NAN แม้ว่าy
จะมีค่าอินทิกรัล สำหรับประเภทที่ซับซ้อนมีการตัดสาขาบนแกนจริงเชิงลบการประกาศ
@differentiable public static func pow(_ x: `Self`, _ y: `Self`) -> Tensor<Scalar>
x
ยกขึ้นสู่พลังn
thผลิตภัณฑ์ของ
n
สำเนาของx
การประกาศ
@differentiable public static func pow(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
ราก
n
th ของx
สำหรับประเภทจริงถ้า
x
เป็นลบและn
เป็นแม้ผลลัพธ์คือน่าน สำหรับประเภทที่ซับซ้อนมีสาขาตัดตามแกนจริงเชิงลบการประกาศ
@differentiable public static func root(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
การประกาศ
public typealias VectorSpaceScalar = Float
การประกาศ
public func scaled(by scale: Float) -> Tensor<Scalar>
การประกาศ
public func adding(_ scalar: Float) -> Tensor<Scalar>
การประกาศ
public func subtracting(_ scalar: Float) -> Tensor<Scalar>
เพิ่มสเกลาร์ให้กับสเกลาร์ทุกตัวของเทนเซอร์และสร้างผลรวม
การประกาศ
@differentiable public static func + (lhs: Scalar, rhs: Tensor) -> Tensor
เพิ่มสเกลาร์ให้กับสเกลาร์ทุกตัวของเทนเซอร์และสร้างผลรวม
การประกาศ
@differentiable public static func + (lhs: Tensor, rhs: Scalar) -> Tensor
ลบสเกลาร์จากสเกลาร์ทุกตัวของเทนเซอร์และสร้างความแตกต่าง
การประกาศ
@differentiable public static func - (lhs: Scalar, rhs: Tensor) -> Tensor
ลบสเกลาร์จากสเกลาร์ทุกตัวของเทนเซอร์และสร้างความแตกต่าง
การประกาศ
@differentiable public static func - (lhs: Tensor, rhs: Scalar) -> Tensor
เพิ่มสองเทนเซอร์และเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
บันทึก
+=
รองรับการออกอากาศการประกาศ
public static func += (lhs: inout Tensor, rhs: Tensor)
เพิ่มสเกลาร์ให้กับสเกลาร์ทุกตัวของเทนเซอร์และเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
การประกาศ
public static func += (lhs: inout Tensor, rhs: Scalar)
ลบเทนเซอร์ที่สองจากครั้งแรกและเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
บันทึก
-=
รองรับการออกอากาศการประกาศ
public static func -= (lhs: inout Tensor, rhs: Tensor)
ลบสเกลาร์จากสเกลาร์ทุกตัวของเทนเซอร์และเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
การประกาศ
public static func -= (lhs: inout Tensor, rhs: Scalar)
ส่งคืนเทนเซอร์ที่ผลิตโดยการคูณสองเทนเซอร์
บันทึก
*
รองรับการออกอากาศการประกาศ
@differentiable public static func * (lhs: Tensor, rhs: Tensor) -> Tensor
ส่งคืนเทนเซอร์โดยการคูณด้วยสเกลาร์ทุกตัวของเทนเซอร์
การประกาศ
@differentiable public static func * (lhs: Scalar, rhs: Tensor) -> Tensor
ทวีคูณสเกลาร์กับสเกลาร์ทุกตัวของเทนเซอร์และผลิตผลิตภัณฑ์
การประกาศ
@differentiable public static func * (lhs: Tensor, rhs: Scalar) -> Tensor
ทวีคูณสองเทนเซอร์และเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
บันทึก
*=
รองรับการออกอากาศการประกาศ
public static func *= (lhs: inout Tensor, rhs: Tensor)
ทวีคูณเทนเซอร์ด้วยสเกลาร์ออกอากาศสเกลาร์และเก็บผลลัพธ์ในตัวแปรด้านซ้ายมือ
การประกาศ
public static func *= (lhs: inout Tensor, rhs: Scalar)
ส่งกลับความฉลาดของการหารเทนเซอร์แรกโดยที่สอง
บันทึก
/
สนับสนุนการออกอากาศการประกาศ
@differentiable public static func / (lhs: Tensor, rhs: Tensor) -> Tensor
ส่งกลับความฉลาดของการหารสเกลาร์โดยเทนเซอร์ออกอากาศสเกลาร์
การประกาศ
@differentiable public static func / (lhs: Scalar, rhs: Tensor) -> Tensor
ส่งคืนความฉลาดของการหารเทนเซอร์โดยสเกลาร์ออกอากาศสเกลาร์
การประกาศ
@differentiable public static func / (lhs: Tensor, rhs: Scalar) -> Tensor
แบ่งเทนเซอร์แรกโดยที่สองและเก็บความฉลาดในตัวแปรด้านซ้ายมือ
การประกาศ
public static func /= (lhs: inout Tensor, rhs: Tensor)
แบ่งเทนเซอร์ด้วยสเกลาร์ออกอากาศสเกลาร์และเก็บความฉลาดในตัวแปรด้านซ้ายมือ
การประกาศ
public static func /= (lhs: inout Tensor, rhs: Scalar)
ส่งคืนส่วนที่เหลือของการหารเทนเซอร์แรกโดยที่สอง
บันทึก
%
รองรับการออกอากาศการประกาศ
public static func % (lhs: Tensor, rhs: Tensor) -> Tensor
ส่งคืนส่วนที่เหลือของการหารเทนเซอร์โดยสเกลาร์ออกอากาศสเกลาร์
การประกาศ
public static func % (lhs: Tensor, rhs: Scalar) -> Tensor
ส่งคืนส่วนที่เหลือของการแบ่งสเกลาร์โดยเทนเซอร์ออกอากาศสเกลาร์
การประกาศ
public static func % (lhs: Scalar, rhs: Tensor) -> Tensor
แบ่งเทนเซอร์แรกโดยที่สองและเก็บส่วนที่เหลือในตัวแปรด้านซ้ายมือ
การประกาศ
public static func %= (lhs: inout Tensor, rhs: Tensor)
แบ่งเทนเซอร์ด้วยสเกลาร์และเก็บส่วนที่เหลือในตัวแปรด้านซ้ายมือ
การประกาศ
public static func %= (lhs: inout Tensor, rhs: Scalar)
กลับมา
!self
ฉลาดการประกาศ
public func elementsLogicalNot() -> Tensor
ส่งคืน
self && other
ที่ชาญฉลาดบันทึก
&&
สนับสนุนการออกอากาศการประกาศ
public func elementsLogicalAnd(_ other: Tensor) -> Tensor
ส่งคืน
self && other
ที่ฉลาดออกอากาศother
การประกาศ
public func elementsLogicalAnd(_ other: Scalar) -> Tensor
ส่งคืน
self || other
องค์ประกอบself || other
ที่ชาญฉลาดการประกาศ
public func elementsLogicalOr(_ other: Tensor) -> Tensor
ส่งคืน
self || other
องค์ประกอบself || other
ที่ชาญฉลาดออกอากาศother
การประกาศ
public func elementsLogicalOr(_ other: Scalar) -> Tensor
ส่งคืน
max(min(self, max), min)
การประกาศ
@differentiable public func clipped(min: Tensor, max: Tensor) -> Tensor
ส่งคืน
max(min(self, max), min)
การประกาศ
@differentiable(wrt: (self, min) ) public func clipped(min: Tensor, max: Scalar) -> Tensor
ส่งคืน
max(min(self, max), min)
การประกาศ
@differentiable(wrt: (self, max) ) public func clipped(min: Scalar, max: Tensor) -> Tensor
ส่งคืน
max(min(self, max), min)
การประกาศ
@differentiable(wrt: self) public func clipped(min: Scalar, max: Scalar) -> Tensor
ส่งคืนการปฏิเสธขององค์ประกอบเทนเซอร์ที่ระบุ
การประกาศ
@differentiable public prefix static func - (rhs: Tensor) -> Tensor
การประกาศ
@differentiable(wrt: self) public func squared() -> Tensor
ส่งคืนเทนเซอร์บูลีนที่ระบุว่าองค์ประกอบของ
x
มี จำกัดการประกาศ
public var isFinite: Tensor<Bool> { get }
ส่งคืนเทนเซอร์บูลีนที่ระบุว่าองค์ประกอบของ
x
ใดที่ไม่มีที่สิ้นสุดการประกาศ
public var isInfinite: Tensor<Bool> { get }
ส่งคืนเทนเซอร์บูลีนที่ระบุว่าองค์ประกอบของ
x
ใดที่มีค่า NANการประกาศ
public var isNaN: Tensor<Bool> { get }
ส่งคืน
true
ถ้าสเกลาร์ทั้งหมดเท่ากับtrue
มิฉะนั้นจะส่งคืนfalse
การประกาศ
public func all() -> Bool
ส่งคืน
true
ถ้าสเกลาร์ใด ๆ เท่ากับtrue
มิฉะนั้นจะส่งคืนfalse
การประกาศ
public func any() -> Bool
ดำเนินการตรรกะและการทำงานตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func all(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ดำเนินการตรรกะและการทำงานตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func any(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ดำเนินการตรรกะและการทำงานตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func all(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ดำเนินการตรรกะหรือการทำงานตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func any(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
การประกาศ
@differentiable public func min() -> Tensor
การประกาศ
@differentiable public func max() -> Tensor
ส่งคืนค่าสูงสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าสูงสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าสูงสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนดัชนีของค่าสูงสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func argmax(squeezingAxis axis: Int) -> Tensor<Int32>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนดัชนีของค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func argmin(squeezingAxis axis: Int) -> Tensor<Int32>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func min(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าต่ำสุดตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func max(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนดัชนีของค่าสูงสุดของสเกลาร์แบน
การประกาศ
public func argmax() -> Tensor<Int32>
ส่งคืนดัชนีของค่าต่ำสุดของสเกลาร์แบน
การประกาศ
public func argmin() -> Tensor<Int32>
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func sum(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func sum(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func sum(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
การประกาศ
@differentiable(wrt: self) public func sum() -> Tensor
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func sum(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func sum(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลรวมตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func sum(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func product(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func product(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func product(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
การประกาศ
@differentiable(wrt: self) public func product() -> Tensor
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func product(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func product(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลิตภัณฑ์ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
public func product(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func mean(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func mean(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank...rank
การประกาศ
@differentiable(wrt: self) public func mean(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
การประกาศ
@differentiable(wrt: self) public func mean() -> Tensor
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func mean(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func mean(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยเลขคณิตตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func mean(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1. ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
การประกาศ
@differentiable(wrt: self) public func variance() -> Tensor
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1. ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1. ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนความแปรปรวนตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า 1. ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func variance(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนผลรวมสะสมของเทนเซอร์นี้ตามแกนที่ระบุ โดยค่าเริ่มต้นฟังก์ชั่นนี้จะทำผลรวมสะสมแบบรวมซึ่งหมายความว่าองค์ประกอบแรกของอินพุตนั้นเหมือนกับองค์ประกอบแรกของเอาต์พุต:
Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
โดยการตั้งค่าอาร์กิวเมนต์
exclusive
เป็นtrue
ผลรวมสะสมพิเศษจะดำเนินการแทน:Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
โดยการตั้งค่าอาร์กิวเมนต์
reverse
เป็นtrue
ผลรวมสะสมจะดำเนินการในทิศทางตรงกันข้าม:Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) == Tensor<Float>([a + b + c, a + b, a])
สิ่งนี้มีประสิทธิภาพมากกว่าการแยกเทนเซอร์ที่เกิดขึ้นแยกต่างหาก
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func cumulativeSum( alongAxis axis: Int, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
พารามิเตอร์
axis
แกนตามการดำเนินการรวมสะสม
exclusive
ระบุว่าจะดำเนินการรวมสะสมพิเศษหรือไม่
reverse
ระบุว่าจะดำเนินการสะสมสะสมตามลำดับกลับกันหรือไม่
ค่าส่งคืน
ผลของการดำเนินการรวมสะสม
ส่งคืนผลรวมสะสมของเทนเซอร์นี้ตามแกนที่ระบุ โดยค่าเริ่มต้นฟังก์ชั่นนี้จะทำผลรวมสะสมแบบรวมซึ่งหมายความว่าองค์ประกอบแรกของอินพุตนั้นเหมือนกับองค์ประกอบแรกของเอาต์พุต:
Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
โดยการตั้งค่าอาร์กิวเมนต์
exclusive
เป็นtrue
ผลรวมสะสมพิเศษจะดำเนินการแทน:Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
โดยการตั้งค่าอาร์กิวเมนต์
reverse
เป็นtrue
ผลรวมสะสมจะดำเนินการในทิศทางตรงกันข้าม:Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) == Tensor<Float>([a + b + c, a + b, a])
สิ่งนี้มีประสิทธิภาพมากกว่าการแยกเทนเซอร์ที่เกิดขึ้นแยกต่างหาก
เงื่อนไขเบื้องต้น
axis.rank
ต้องเป็น0
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func cumulativeSum( alongAxis axis: Tensor<Int32>, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
พารามิเตอร์
axis
แกนตามการดำเนินการรวมสะสม
exclusive
ระบุว่าจะดำเนินการรวมสะสมพิเศษหรือไม่
reverse
ระบุว่าจะดำเนินการสะสมสะสมตามลำดับกลับกันหรือไม่
ค่าส่งคืน
ผลของการดำเนินการรวมสะสม
ส่งคืนผลิตภัณฑ์สะสมของเทนเซอร์นี้ตามแกนที่ระบุ โดยค่าเริ่มต้นฟังก์ชั่นนี้ดำเนินการผลิตภัณฑ์สะสมแบบรวมซึ่งหมายความว่าองค์ประกอบแรกของอินพุตนั้นเหมือนกับองค์ประกอบแรกของเอาต์พุต:
Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
โดยการตั้งค่าอาร์กิวเมนต์
exclusive
เป็นtrue
ผลิตภัณฑ์สะสมพิเศษจะดำเนินการแทน:Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
โดยการตั้งค่าอาร์กิวเมนต์
reverse
เป็นtrue
ผลิตภัณฑ์สะสมจะดำเนินการในทิศทางตรงกันข้าม:Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) == Tensor<Float>([a * b * c, a * b, a])
สิ่งนี้มีประสิทธิภาพมากกว่าการแยกเทนเซอร์ที่เกิดขึ้นแยกต่างหาก
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func cumulativeProduct( alongAxis axis: Int, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
พารามิเตอร์
axis
แกนตามการดำเนินการผลิตภัณฑ์สะสม
exclusive
ระบุว่าจะดำเนินการผลิตภัณฑ์สะสมพิเศษหรือไม่
reverse
ระบุว่าจะดำเนินการผลิตภัณฑ์สะสมตามลำดับกลับ
ค่าส่งคืน
ผลของการดำเนินการผลิตภัณฑ์สะสม
ส่งคืนผลิตภัณฑ์สะสมของเทนเซอร์นี้ตามแกนที่ระบุ โดยค่าเริ่มต้นฟังก์ชั่นนี้ดำเนินการผลิตภัณฑ์สะสมแบบรวมซึ่งหมายความว่าองค์ประกอบแรกของอินพุตนั้นเหมือนกับองค์ประกอบแรกของเอาต์พุต:
Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
โดยการตั้งค่าอาร์กิวเมนต์
exclusive
เป็นtrue
ผลิตภัณฑ์สะสมพิเศษจะดำเนินการแทน:Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
โดยการตั้งค่าอาร์กิวเมนต์
reverse
เป็นtrue
ผลิตภัณฑ์สะสมจะดำเนินการในทิศทางตรงกันข้าม:Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) == Tensor<Float>([a * b * c, a * b, a])
สิ่งนี้มีประสิทธิภาพมากกว่าการแยกเทนเซอร์ที่เกิดขึ้นแยกต่างหาก
เงื่อนไขเบื้องต้น
axis
ต้องมีอันดับ0
เงื่อนไขเบื้องต้น
axis
ต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func cumulativeProduct( alongAxis axis: Tensor<Int32>, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
พารามิเตอร์
axis
แกนตามการดำเนินการผลิตภัณฑ์สะสม
exclusive
ระบุว่าจะดำเนินการผลิตภัณฑ์สะสมพิเศษหรือไม่
reverse
ระบุว่าจะดำเนินการผลิตภัณฑ์สะสมตามลำดับกลับ
ค่าส่งคืน
ผลของการดำเนินการผลิตภัณฑ์สะสม
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบทั้งหมดในเทนเซอร์นี้ ไม่ได้ใช้การแก้ไขของ Bessel
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation() -> Tensor
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเบี่ยงเบนมาตรฐานขององค์ประกอบตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
ไม่ได้ใช้การแก้ไขของ Besselเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum(squeezingAxes: axes))
ขนาดที่ลดลงจะถูกลบออกฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(squeezingAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum(squeezingAxes: axes))
ขนาดที่ลดลงจะถูกลบออกฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(squeezingAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum(squeezingAxes: axes))
ขนาดที่ลดลงจะถูกลบออกฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(squeezingAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum())
ผลที่ได้คือสเกลาร์ฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum())
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กการประกาศ
@differentiable(wrt: self) public func logSumExp() -> Tensor
ส่งคืน
log(exp(self).sum(alongAxes: axes))
ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า1
ฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(alongAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(alongAxes axes: Tensor<Int32>) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum(alongAxes: axes))
ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า1
ฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(alongAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(alongAxes axes: [Int]) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืน
log(exp(self).sum(alongAxes: axes))
ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า1
ฟังก์ชั่นนี้มีความเสถียรเชิงตัวเลขมากกว่า
log(exp(self).sum(alongAxes: axes))
โดยตรง มันหลีกเลี่ยงการล้นที่เกิดจากการคำนวณexp
ของอินพุตขนาดใหญ่และ underflows ที่เกิดจากการคำนวณlog
ของอินพุตขนาดเล็กเงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func logSumExp(alongAxes axes: Int...) -> Tensor
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
axes
ต้องมีอันดับ1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(squeezingAxes axes: Tensor<Int32>) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(squeezingAxes axes: [Int]) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกลบออก
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(squeezingAxes axes: Int...) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนขององค์ประกอบของเทนเซอร์นี้
การประกาศ
@differentiable(wrt: self) public func moments() -> Moments<Scalar>
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
เงื่อนไขเบื้องต้น
axes
ต้องมีอันดับ1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(alongAxes axes: Tensor<Int32>) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(alongAxes axes: [Int]) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ส่งคืนค่าเฉลี่ยและความแปรปรวนของเทนเซอร์นี้ตามแกนที่ระบุ ขนาดที่ลดลงจะถูกเก็บไว้ด้วยค่า
1
เงื่อนไขเบื้องต้น
แต่ละค่าในaxes
จะต้องอยู่ในช่วง-rank..<rank
การประกาศ
@differentiable(wrt: self) public func moments(alongAxes axes: Int...) -> Moments<Scalar>
พารามิเตอร์
axes
ขนาดเพื่อลด
ทำการคูณเมทริกซ์ระหว่างสองเทนเซอร์และสร้างผลลัพธ์
การประกาศ
@differentiable public static func • (lhs: Tensor, rhs: Tensor) -> Tensor
การประกาศ
static func vjpInitDeviceAndPrecisionLike( _ value: Scalar, deviceAndPrecisionLike tensor: Tensor ) -> (value: Tensor, pullback: (Tensor) -> (Scalar, Tensor))
ส่งคืนเทนเซอร์ที่คำนวณจากการกำหนดอินพุตแบบเป็นแบทช์ตามแนวแกนที่ระบุ
โดยเฉพาะผลตอบแทน
(self - mu) / (var + epsilon) * gamma + beta
โดยที่mu
และvar
เป็นตามลำดับความแปรปรวนและความแปรปรวนของself
ตามaxis
การประกาศ
@differentiable(wrt: (self, offset, scale) public func batchNormalized( alongAxis axis: Int, offset: Tensor = Tensor(0), scale: Tensor = Tensor(1), epsilon: Scalar = 0.001 ) -> Tensor
พารามิเตอร์
axis
มิติชุด
offset
ออฟเซ็ตหรือที่รู้จักกันในชื่อเบต้า
scale
สเกลหรือที่รู้จักกันในชื่อแกมม่า
epsilon
ค่าเล็ก ๆ ที่เพิ่มเข้ามาในตัวส่วนเพื่อความมั่นคงเชิงตัวเลข
เชื่อมต่อสองเทนเซอร์ตามแกนสุดท้าย
การประกาศ
@differentiable public static func concatenate(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
เพิ่มสองค่าและสร้างผลรวม
การประกาศ
@differentiable public static func sum(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
เฉลี่ยสองค่า
การประกาศ
@differentiable public static func average(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
คูณสองค่า
การประกาศ
@differentiable public static func multiply(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
สแต็กสองค่า
การประกาศ
@differentiable public static func stack(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
การประกาศ
@derivative init(shape: scalars)
การประกาศ
public static func == (lhs: Tensor, rhs: Tensor) -> Bool
การประกาศ
public static func != (lhs: Tensor, rhs: Tensor) -> Bool
การประกาศ
public func encode(to encoder: Encoder) throws
การประกาศ
public init(from decoder: Decoder) throws
เทนเซอร์ศูนย์สเกลาร์
การประกาศ
public static var zero: Tensor { get }
เพิ่มสองเทนเซอร์และสร้างผลรวมของพวกเขา
บันทึก
+
รองรับการออกอากาศการประกาศ
@differentiable public static func + (lhs: Tensor, rhs: Tensor) -> Tensor
ลบหนึ่งเทนเซอร์จากอีกตัวหนึ่งและสร้างความแตกต่าง
บันทึก
-
รองรับการออกอากาศการประกาศ
@differentiable public static func - (lhs: Tensor, rhs: Tensor) -> Tensor
สเกลาร์หนึ่งเทนเซอร์
การประกาศ
public static var one: Tensor { get }
ส่งคืนค่าซึ่งกันและกันของ
self
การประกาศ
public var reciprocal: Tensor { get }
ทวีคูณสองเทนเซอร์องค์ประกอบที่ชาญฉลาดและผลิตผลิตภัณฑ์ของพวกเขา
บันทึก
.*
รองรับการออกอากาศการประกาศ
public static func .* (lhs: Tensor, rhs: Tensor) -> Tensor
การประกาศ
public typealias TangentVector = Tensor
การประกาศ
public var zeroTangentVectorInitializer: () -> TangentVector { get }
เพิ่มคำอธิบายประกอบ
หมายเหตุ: รองรับ X10 เท่านั้น สำหรับแบ็กเอนด์อื่น ๆ
self
Umodified จะถูกส่งคืนการประกาศ
@differentiable(wrt: self) public func annotate(_ annotation: String) -> Tensor<Scalar>
พารามิเตอร์
annotation
คำอธิบายประกอบที่จะเพิ่ม
ค่าส่งคืน
เทนเซอร์หมายเหตุประกอบ
การประกาศ
@derivative func vjpAnnotate(_ annotation: String) -> ( value: Tensor<Scalar>, pullback: (Tensor<Scalar>) -> Tensor<Scalar> )