โปรโตคอล

โปรโตคอลต่อไปนี้สามารถใช้ได้ทั่วโลก

  • ให้คะแนนการปรับแต่งสำหรับ 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
  • ประกาศ

  • เลเยอร์โครงข่ายประสาทเทียม

    ประเภทที่สอดคล้องกับ 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