โปรโตคอลต่อไปนี้มีให้บริการทั่วโลก
จัดเตรียมจุดปรับแต่งสำหรับอัลกอริทึม
MutableCollection
หากรวมอยู่ในไลบรารีมาตรฐาน ข้อกำหนดเหล่านี้จะเป็นส่วนหนึ่งของ
MutableCollection
ในระหว่างนี้ คุณสามารถประกาศความสอดคล้องของคอลเลกชันกับMutableCollectionAlgorithms
เพื่อให้คะแนนการปรับแต่งเหล่านี้นำไปใช้จากอัลกอริทึมอื่นที่กำหนดไว้ในMutableCollectionAlgorithms
คำประกาศ
public protocol MutableCollectionAlgorithms: MutableCollection where SubSequence: MutableCollectionAlgorithms
คำประกาศ
public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
คำประกาศ
public protocol TensorRangeExpression
ประเภทที่สามารถจัดเรียงองค์ประกอบในองค์ประกอบอันดับสูงกว่าประเภทเดียวกันได้ (ตัวอย่าง: เทนเซอร์, ทูเพิลของเทนเซอร์)
คำประกาศ
public protocol Collatable
ประเภทที่มีคุณสมบัติและองค์ประกอบที่ซ้อนกันสามารถคัดลอกไปยัง
Device
ได้คำประกาศ
public protocol CopyableToDevice : _CopyableToDevice
ประเภทที่มีค่าให้เส้นทางคีย์ที่กำหนดเองไปยังคุณสมบัติหรือองค์ประกอบ
คำประกาศ
public protocol KeyPathIterable : _KeyPathIterableBase
ประเภทข้อมูลสเกลาร์ที่เข้ากันได้กับ TensorFlow
ประเภทที่สอดคล้องกับ
TensorFlowScalar
สามารถใช้เป็นประเภทที่เกี่ยวข้องกับScalar
ของTensor
ได้ประเภทข้อมูลจำนวนเต็มที่แสดงประเภทจำนวนเต็มซึ่งสามารถใช้เป็นดัชนีเทนเซอร์ใน TensorFlow
คำประกาศ
public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
ประเภทข้อมูลจุดลอยตัวที่สอดคล้องกับ
Differentiable
และเข้ากันได้กับ TensorFlowบันทึก
Tensor
เป็นไปตามเงื่อนไขเป็นDifferentiable
เมื่อประเภทที่เกี่ยวข้องกับScalar
สอดคล้องกับTensorFlowFloatingPoint
คำประกาศ
public protocol TensorFlowFloatingPoint: TensorFlowScalar & BinaryFloatingPoint & Differentiable & ElementaryFunctions where Self.RawSignificand: FixedWidthInteger, Self == Self.TangentVector
ประเภทที่ในทางคณิตศาสตร์แสดงถึงท่อร่วมเชิงหาอนุพันธ์ซึ่งมีช่องว่างแทนเจนต์เป็นมิติที่มีจำกัด
คำประกาศ
public protocol Differentiable
ประเภทที่มีค่าที่รองรับการคูณแบบจุด
คำประกาศ
public protocol PointwiseMultiplicative : AdditiveArithmetic
ประเภทที่แสดงถึงปริภูมิเวกเตอร์ที่ไม่มีการจัดอันดับ ค่าประเภทนี้คือองค์ประกอบในพื้นที่เวกเตอร์นี้ และไม่มีรูปร่างหรือรูปร่างคงที่
คำประกาศ
public protocol VectorProtocol : AdditiveArithmetic
ประเภทที่สามารถหาความแตกต่างได้ในปริภูมิแบบยุคลิด ประเภทอาจแสดงถึงปริภูมิเวกเตอร์ หรือประกอบด้วยปริภูมิเวกเตอร์และส่วนประกอบอื่นๆ ที่ไม่สามารถหาความแตกต่างได้
ในทางคณิตศาสตร์ สิ่งนี้แสดงถึงผลิตภัณฑ์ที่หลากหลายที่ประกอบด้วยปริภูมิเวกเตอร์ที่สามารถหาอนุพันธ์ได้และท่อร่วมเวกเตอร์บางส่วน โดยที่มัดแทนเจนต์ของท่อร่วมผลิตภัณฑ์ทั้งหมดเท่ากับส่วนประกอบของปริภูมิเวกเตอร์
นามธรรมนี้มีประโยชน์ในการแสดงโครงสร้างข้อมูลที่หาอนุพันธ์ทั่วไปได้ซึ่งมีทั้งคุณสมบัติเวกเตอร์ที่หาอนุพันธ์ได้และคุณสมบัติที่เก็บไว้อื่นๆ ที่ไม่มีอนุพันธ์ เช่น
struct Perceptron: @memberwise EuclideanDifferentiable { var weight: SIMD16<Float> var bias: Float @noDerivative var useBias: Bool }
บันทึก
กำหนดประเภทเป็นEuclideanDifferentiable
หากสามารถหาอนุพันธ์ได้เฉพาะด้วยความเคารพต่อส่วนประกอบของปริภูมิเวกเตอร์ และเมื่อTangentVector
เท่ากับส่วนประกอบของปริภูมิเวกเตอร์คำประกาศ
public protocol EuclideanDifferentiable : Differentiable
คำประกาศ
public protocol Module: EuclideanDifferentiable, KeyPathIterable where TangentVector: VectorProtocol & ElementaryFunctions & PointwiseMultiplicative & KeyPathIterable
เลเยอร์โครงข่ายประสาทเทียม
ประเภทที่สอดคล้องกับ
Layer
แสดงถึงฟังก์ชันที่แมปอินพุตกับเอาต์พุต อาจมีสถานะภายในที่แสดงด้วยพารามิเตอร์ เช่น เทนเซอร์น้ำหนักอินสแตน
Layer
กำหนดวิธีcallAsFunction(_:)
ที่แตกต่างกันสำหรับการแมปอินพุตกับเอาต์พุตคำประกาศ
public protocol Layer : Module where Self.Input : Differentiable
เลเยอร์โครงข่ายประสาทเทียมแบบไม่มีพารามิเตอร์
TangentVector
ของเลเยอร์ที่ไม่มีพารามิเตอร์จะเป็นEmptyTangentVector
เสมอคำประกาศ
public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
ประเภทที่มีฟังก์ชันพื้นฐานให้เลือก
“ฟังก์ชันพื้นฐาน” คือฟังก์ชันที่สร้างขึ้นจากกำลัง ราก เลขชี้กำลัง ลอการิทึม ฟังก์ชันตรีโกณมิติ (sin, cos, tan) และค่าผกผันของฟังก์ชัน และฟังก์ชันไฮเปอร์โบลิก (sinh, cosh, tanh) และความผกผันของฟังก์ชันเหล่านั้น
ความสอดคล้องกับโปรโตคอลนี้หมายความว่า Building Block เหล่านี้ทั้งหมดพร้อมใช้งานเป็นฟังก์ชันคงที่ในประเภท
let x: Float = 1 let y = Float.sin(x) // 0.84147096
คำประกาศ
public protocol ElementaryFunctions
ประเภทที่มีคุณสมบัติและองค์ประกอบเทนเซอร์จุดลอยตัวที่ซ้อนกันสามารถแปลงจากความแม่นยำเต็มที่เป็นความแม่นยำที่ลดลงและในทางกลับกัน
รายละเอียดการใช้งานที่ใช้ในการแก้ไขข้อเท็จจริงที่ว่า Swift ไม่สามารถแสดงข้อจำกัดทั่วไปที่บางประเภทต้องเป็นอินสแตนซ์ของ
Sampling
คำประกาศ
public protocol SamplingProtocol : Collection
ประเภทที่สามารถเริ่มต้นได้จากอินสแตนซ์
numpy.ndarray
ที่แสดงเป็นPythonObject
คำประกาศ
public protocol ConvertibleFromNumpyArray
ประเภทที่เข้ากันได้กับประเภทสเกลาร์ NumPy หนึ่งประเภทขึ้นไป
คำประกาศ
public protocol NumpyScalarCompatible
ประเภทที่มีค่าที่สามารถแปลงเป็น
PythonObject
คำประกาศ
public protocol PythonConvertible
ประเภทที่สามารถเริ่มต้นได้จาก
PythonObject
คำประกาศ
public protocol ConvertibleFromPython
ประเภทที่ให้ข้อมูลสุ่มหลอกที่กำหนดได้และกำหนดได้
SeedableRandomNumberGenerator สามารถใช้ได้ทุกที่ที่จะใช้ RandomNumberGenerator ซึ่งจะมีประโยชน์เมื่อจำเป็นต้องทำซ้ำข้อมูลสุ่มเทียมระหว่างการรัน
สอดคล้องกับโปรโตคอล SeedableRandomNumberGenerator
หากต้องการทำให้ประเภทที่กำหนดเองสอดคล้องกับโปรโตคอล
SeedableRandomNumberGenerator
ให้ใช้ตัวเริ่มต้นinit(seed: [UInt8])
รวมถึงข้อกำหนดสำหรับRandomNumberGenerator
ค่าที่ส่งคืนโดยnext()
จะต้องสร้างลำดับที่กำหนดขึ้นซึ่งขึ้นอยู่กับค่าเริ่มต้นที่ให้ไว้เมื่อเริ่มต้นเท่านั้นคำประกาศ
public protocol SeedableRandomNumberGenerator : RandomNumberGenerator
คำประกาศ
public protocol RandomDistribution
เซลล์ชั้นที่เกิดซ้ำ
คำประกาศ
public protocol RecurrentLayerCell: Layer where Input == RNNCellInput<TimeStepInput, State>, Output == RNNCellOutput<TimeStepOutput, State>
ประเภทที่มีค่าที่รองรับการดำเนินการไบนารี่ที่หาอนุพันธ์ได้
ใช้โดย
BidirectionalRecurrentLayer
เป็นข้อกำหนดทั่วไปสำหรับฟังก์ชันผสานคำประกาศ
public protocol Mergeable : AdditiveArithmetic, Differentiable
คำประกาศ
public protocol TensorOperation
คำประกาศ
public protocol TFTensorOperation : TensorOperation
โปรโตคอลพิเศษสำหรับเรียกใช้การดำเนินการเทนเซอร์โฟลว์ที่รับอาร์เรย์ต่างกันเป็นอินพุต
คำประกาศ
public protocol AnyTensor
คำประกาศ
public protocol TensorProtocol
คำประกาศ
public protocol DifferentiableTensorProtocol: TensorProtocol & Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
โปรโตคอลที่แสดงประเภทที่สามารถแมปกับ
Array<CTensorHandle>
โปรโตคอลนี้ถูกกำหนดแยกต่างหากจาก
TensorGroup
เพื่อกำหนดจำนวนเทนเซอร์ในขณะรันไทม์ ตัวอย่างเช่น[Tensor<Float>]
อาจมีองค์ประกอบที่ไม่ทราบจำนวน ณ เวลารวบรวมสามารถรับโปรโตคอลนี้ได้โดยอัตโนมัติสำหรับโครงสร้างที่มีคุณสมบัติที่เก็บไว้ทั้งหมดสอดคล้องกับโปรโตคอล
TensorGroup
ไม่สามารถรับมาได้โดยอัตโนมัติสำหรับโครงสร้างที่มีคุณสมบัติทั้งหมดสอดคล้องกับTensorArrayProtocol
เนื่องจากข้อกำหนดของตัวสร้าง (เช่น ในกรณีเช่นนี้ จะเป็นไปไม่ได้ที่จะทราบวิธีแยกcount
ในคุณสมบัติที่เก็บไว้)คำประกาศ
public protocol TensorArrayProtocol
โปรโตคอลที่แสดงประเภทที่สามารถแมปไปยังและจาก
Array<CTensorHandle>
เมื่อ
TensorGroup
ถูกใช้เป็นอาร์กิวเมนต์ในการดำเนินการเทนเซอร์ มันจะถูกส่งผ่านเป็นรายการอาร์กิวเมนต์ที่มีองค์ประกอบเป็นฟิลด์เทนเซอร์ประเภทนั้นเมื่อ
TensorGroup
ถูกส่งคืนอันเป็นผลมาจากการดำเนินการของเทนเซอร์ จะมีการกำหนดค่าเริ่มต้นด้วยฟิลด์เทนเซอร์ที่ตั้งค่าเป็นผลลัพธ์เทนเซอร์ของการดำเนินการเทนเซอร์คำประกาศ
public protocol TensorGroup : TensorArrayProtocol
ประเภทข้อมูลที่รองรับใน x10
คำประกาศ
public protocol XLAScalarType