프로토콜

다음 프로토콜은 전 세계적으로 사용할 수 있습니다.

  • 에 대한 사용자 정의 포인트를 제공 MutableCollection 알고리즘.

    표준 라이브러리에 통합하는 경우, 이러한 요구 사항은 단지의 일부가 될 것입니다 MutableCollection . 한편, 당신은에 컬렉션의 적합성을 선언 할 수 있습니다 MutableCollectionAlgorithms 이러한 사용자 정의 점에 정의 된 다른 알고리즘에서 사용하는 얻을 MutableCollectionAlgorithms .

    선언

    public protocol MutableCollectionAlgorithms: MutableCollection
    where SubSequence: MutableCollectionAlgorithms
  • 선언

    public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
  • 선언

    public protocol TensorRangeExpression
  • 동일한 유형의 일부 상위 요소에서 요소를 조합할 수 있는 유형(예: 텐서, 텐서의 튜플)

    선언

    public protocol Collatable
  • 그 중첩 특성 및 요소 (A)에 복사 할 수있는 A 형 Device .

    선언

    public protocol CopyableToDevice : _CopyableToDevice
  • 값이 속성 또는 요소에 대한 사용자 지정 키 경로를 제공하는 형식입니다.

    선언

    public protocol KeyPathIterable : _KeyPathIterableBase
  • TensorFlow와 호환되는 스칼라 데이터 유형입니다.

    준수 유형 TensorFlowScalar 로 사용할 수 있습니다 Scalar 의 관련 유형 Tensor .

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

    선언

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • 부동 소수점 데이터는 해당 부합 함을 선언 입력 Differentiable 하고 TensorFlow와 호환됩니다.

    메모

    Tensor 에 조건에 부합 함을 선언 DifferentiableScalar 연관된 타입 부합 함을 선언합니다 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
  • 기본 기능을 사용할 수 있는 유형입니다.

    "기본 기능" 힘, 뿌리, 지수 함수, 로그 함수에서 구축 기능, 삼각 함수 (죄, 황갈색 COS)와 그 역함수, 쌍곡선 함수 (sinh, cosh, tanh)과 역수이다.

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

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

    선언

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

  • 구현 세부 스위프트가 어떤 유형의 인스턴스해야하는 일반적인 제약 표현할 수 없다는 사실를 해결하려면 사용 Sampling .

    선언

    public protocol SamplingProtocol : Collection
  • A로부터 초기화 될 수있는 유형 numpy.ndarray 예는로 표현 PythonObject .

    선언

    public protocol ConvertibleFromNumpyArray
  • 하나 이상의 NumPy 스칼라 유형과 비트 단위로 호환되는 유형입니다.

    선언

    public protocol NumpyScalarCompatible
  • 그 값은 A 형으로 변환 할 수 PythonObject .

    선언

    public protocol PythonConvertible
  • A로부터 초기화 할 수있는 유형 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
  • 이기종 배열을 입력으로 사용하는 tensorflow 작업을 호출하기 위한 특수 프로토콜입니다.

    선언

    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