โปรโตคอล

โปรโตคอลต่อไปนี้มีให้บริการทั่วโลก

  • จัดเตรียมจุดปรับแต่งสำหรับอัลกอริทึม 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 ของเลเยอร์ที่ไม่มีพารามิเตอร์จะเป็น 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