다음 프로토콜은 전 세계적으로 사용 가능합니다.
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
준수하는 유형은Tensor
의Scalar
관련 유형으로 사용될 수 있습니다.TensorFlow에서 텐서 인덱스로 사용할 수 있는 정수 유형을 나타내는 정수 데이터 유형입니다.
선언
public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
Differentiable
준수하고 TensorFlow와 호환되는 부동 소수점 데이터 유형입니다.선언
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
선언
public protocol Module: EuclideanDifferentiable, KeyPathIterable where TangentVector: VectorProtocol & ElementaryFunctions & PointwiseMultiplicative & KeyPathIterable
신경망 계층.
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