다음 프로토콜은 전 세계적으로 사용할 수 있습니다.
에 대한 사용자 정의 포인트를 제공
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와 호환됩니다.선언
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
선언
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
기본 기능을 사용할 수 있는 유형입니다.
"기본 기능" 힘, 뿌리, 지수 함수, 로그 함수에서 구축 기능, 삼각 함수 (죄, 황갈색 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