โปรโตคอลต่อไปนี้สามารถใช้ได้ทั่วโลก
ให้คะแนนการปรับแต่งสำหรับ
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
ชั้น parameterless อยู่เสมอEmptyTangentVector
ประกาศ
public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
ชนิดที่มีฟังก์ชันพื้นฐานพร้อมใช้งาน
“ฟังก์ชั่นประถมศึกษา” คือฟังก์ชั่นที่สร้างขึ้นมาจากอำนาจราก exponentials, ลอการิทึมฟังก์ชันตรีโกณมิติ (บาป cos, สีน้ำตาล) และแปรผกผันกันของพวกเขาและฟังก์ชั่นการผ่อนชำระ (Sinh, กระบอง, tanh) และแปรผกผันกันของพวกเขา
ความสอดคล้องกับโปรโตคอลนี้หมายความว่า Building Block ทั้งหมดนี้มีให้ใช้งานเป็นฟังก์ชันคงที่ในประเภท
let x: Float = 1 let y = Float.sin(x) // 0.84147096
ประกาศ
public protocol ElementaryFunctions
ประเภทที่มีคุณสมบัติเทนเซอร์จุดลอยตัวที่ซ้อนกันและองค์ประกอบสามารถแปลงจากความแม่นยำเต็มรูปแบบเป็นความแม่นยำที่ลดลงและในทางกลับกัน
รายละเอียดการดำเนินการที่ใช้ในการทำงานรอบความจริงที่ว่าสวิฟท์ไม่สามารถแสดงความ จำกัด ทั่วไปที่บางชนิดต้องเป็นตัวอย่างของ
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 Protocol
หากต้องการประเภทที่กำหนดเองสอดคล้องกับ
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>]
อาจมีไม่ทราบจำนวนขององค์ประกอบที่รวบรวมเวลาโปรโตคอลนี้สามารถจะได้มาโดยอัตโนมัติ structs ที่มีคุณสมบัติทั้งหมดที่เก็บไว้สอดคล้องกับ
TensorGroup
โปรโตคอล มันไม่สามารถจะได้มาโดยอัตโนมัติ structs ที่มีคุณสมบัติสอดคล้องกับTensorArrayProtocol
เนื่องจากความต้องการสร้าง (เช่นในกรณีดังกล่าวก็จะเป็นไปไม่ได้ที่จะทราบวิธีที่จะทำลายลงcount
ในหมู่คุณสมบัติที่เก็บไว้)ประกาศ
public protocol TensorArrayProtocol
โปรโตคอลที่เป็นตัวแทนของประเภทที่สามารถแมปไปและกลับจาก
Array<CTensorHandle>
เมื่อ
TensorGroup
จะใช้เป็นข้อโต้แย้งกับการดำเนินการเมตริกซ์ก็จะถูกส่งเป็นรายการอาร์กิวเมนต์ซึ่งเป็นธาตุทุ่งเมตริกซ์ชนิดเมื่อ
TensorGroup
จะถูกส่งกลับเป็นผลมาจากการดำเนินการเมตริกซ์ก็จะเริ่มต้นกับเขตเมตริกซ์ของการตั้งค่ากับผลการดำเนินงานเมตริกซ์เมตริกซ์ของประกาศ
public protocol TensorGroup : TensorArrayProtocol
ประเภทข้อมูลที่รองรับใน x10
ประกาศ
public protocol XLAScalarType