프로토콜

다음 프로토콜은 전 세계적으로 사용 가능합니다.

  • 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 준수하는 유형은 TensorScalar 관련 유형으로 사용될 수 있습니다.

  • TensorFlow에서 텐서 인덱스로 사용할 수 있는 정수 유형을 나타내는 정수 데이터 유형입니다.

    선언

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • Differentiable 준수하고 TensorFlow와 호환되는 부동 소수점 데이터 유형입니다.

    메모

    Scalar 관련 유형이 TensorFlowFloatingPoint 준수할 때 Tensor 조건부로 Differentiable 준수합니다.

    선언

    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
    }
    

    메모

    벡터 공간 구성 요소에 대해서만 미분 가능하고 TangentVector 벡터 공간 구성 요소와 동일한 경우 유형을 EuclideanDifferentiable 로 준수합니다.

    선언

    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) 및 그 역으로 구성된 함수입니다.

    이 프로토콜을 준수한다는 것은 이러한 모든 빌딩 블록을 유형에 대한 정적 기능으로 사용할 수 있음을 의미합니다.

    let x: Float = 1
    let y = Float.sin(x) // 0.84147096
    

    선언

    public protocol ElementaryFunctions
  • 중첩된 부동 소수점 텐서 속성과 요소를 전체 정밀도에서 감소된 정밀도로 또는 그 반대로 변환할 수 있는 유형입니다.

  • Swift가 일부 유형이 Sampling 의 인스턴스여야 한다는 일반적인 제약 조건을 표현할 수 없다는 사실을 해결하는 데 사용되는 구현 세부 사항입니다.

    선언

    public protocol SamplingProtocol : Collection
  • PythonObject 로 표시되는 numpy.ndarray 인스턴스에서 초기화할 수 있는 유형입니다.

    선언

    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