다음 구조는 전 세계적으로 사용할 수 있습니다.
요소 유형이 동일한 두 시퀀스의 연결입니다.
선언
public struct Concatenation<Base1: Sequence, Base2: Sequence>: Sequence where Base1.Element == Base2.Element
extension Concatenation: Collection where Base1: Collection, Base2: Collection
extension Concatenation: BidirectionalCollection where Base1: BidirectionalCollection, Base2: BidirectionalCollection
extension Concatenation: RandomAccessCollection where Base1: RandomAccessCollection, Base2: RandomAccessCollection
컬렉션에 대한 회전된 보기입니다.
선언
public struct RotatedCollection<Base> : Collection where Base : Collection
extension RotatedCollection: BidirectionalCollection where Base: BidirectionalCollection
extension RotatedCollection: RandomAccessCollection where Base: RandomAccessCollection
선언
public struct AnyDifferentiable : Differentiable
유형이 지워진 파생 값입니다.
AnyDerivative
유형은 해당 작업을Differentiable
및AdditiveArithmetic
준수하는 임의의 기본 기본 파생 값으로 전달하여 기본 값의 세부 사항을 숨깁니다.선언
@frozen public struct AnyDerivative : Differentiable & AdditiveArithmetic
벡터와 행렬을 잠재적으로 더 높은 차원으로 일반화한 요소의 다차원 배열입니다.
일반 매개변수
Scalar
텐서의 스칼라 유형(예:Int32
,Float
등)을 설명합니다.선언
@frozen public struct Tensor<Scalar> where Scalar : TensorFlowScalar
extension Tensor: Collatable
extension Tensor: CopyableToDevice
extension Tensor: AnyTensor
extension Tensor: ExpressibleByArrayLiteral
extension Tensor: CustomStringConvertible
extension Tensor: CustomPlaygroundDisplayConvertible
extension Tensor: CustomReflectable
extension Tensor: TensorProtocol
extension Tensor: TensorGroup
extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
extension Tensor: Equatable where Scalar: Equatable
extension Tensor: Codable where Scalar: Codable
extension Tensor: AdditiveArithmetic where Scalar: Numeric
extension Tensor: PointwiseMultiplicative where Scalar: Numeric
extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
extension Tensor: DifferentiableTensorProtocol where Scalar: TensorFlowFloatingPoint
두 개의
Tensors
브로드캐스트하는 조옮김을 수행하는 풀백 기능입니다.선언
public struct BroadcastingPullback
레이어와 같은 딥러닝 API에서 사용하는 스레드-로컬 상황별 정보를 저장하는 컨텍스트입니다.
Context.local
사용하여 현재 스레드 로컬 컨텍스트를 검색합니다.예:
-
BatchNorm
과 같은 레이어가 입력에 적용될 때 평균과 분산을 계산하도록 현재 학습 단계를 훈련으로 설정합니다.
Context.local.learningPhase = .training
Dropout
과 같은 레이어가 입력에 적용될 때 단위를 삭제하지 않도록 현재 학습 단계를 추론으로 설정합니다.
Context.local.learningPhase = .inference
선언
public struct Context
-
1차원 컨볼루션 계층(예: 시계열에 대한 시간적 컨볼루션).
이 레이어는 레이어 입력과 컨볼루션되어 출력 텐서를 생성하는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
2D 컨볼루션 레이어(예: 이미지에 대한 공간 컨볼루션)
이 레이어는 레이어 입력과 컨볼루션되어 출력 텐서를 생성하는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
이미지에 대한 공간/시공간 컨볼루션을 위한 3D 컨볼루션 레이어입니다.
이 레이어는 레이어 입력과 컨볼루션되어 출력 텐서를 생성하는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
1-D 전치 컨볼루션 레이어(예: 이미지에 대한 시간 전치 컨볼루션).
이 레이어는 출력 텐서를 생성하기 위해 레이어 입력과 전치 컨볼루션되는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
2D 전치 컨볼루션 레이어(예: 이미지에 대한 공간 전치 컨볼루션).
이 레이어는 출력 텐서를 생성하기 위해 레이어 입력과 전치 컨볼루션되는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
3D 전치 컨볼루션 레이어(예: 이미지에 대한 공간 전치 컨볼루션).
이 레이어는 출력 텐서를 생성하기 위해 레이어 입력과 전치 컨볼루션되는 컨볼루션 필터를 생성합니다.
선언
@frozen public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
2차원 깊이별 컨볼루션 레이어.
이 레이어는 레이어 입력과 컨볼루션되어 출력 텐서를 생성하는 분리 가능한 컨볼루션 필터를 생성합니다.
선언
@frozen public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
시간 차원에 제로 패딩을 추가하기 위한 레이어입니다.
선언
public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 차원에 제로 패딩을 추가하기 위한 레이어입니다.
선언
public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간/시공간 차원에 제로패딩을 추가하기 위한 레이어입니다.
선언
public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
1차원 분리 가능한 컨볼루션 레이어.
이 레이어는 채널에 대해 개별적으로 작동하는 깊이별 컨볼루션을 수행한 다음 채널을 혼합하는 포인트별 컨볼루션을 수행합니다.
선언
@frozen public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
2D 분리 가능한 컨볼루션 레이어.
이 레이어는 채널에 대해 개별적으로 작동하는 깊이별 컨볼루션을 수행한 다음 채널을 혼합하는 포인트별 컨볼루션을 수행합니다.
선언
@frozen public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
평평한 레이어.
평면화 레이어는 적용 시 배치 크기에 영향을 주지 않고 입력을 평면화합니다.
선언
@frozen public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
레이어 모양 변경.
선언
@frozen public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
사용자 지정 미분 가능 함수를 포함하는 레이어입니다.
선언
public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
TensorFlowScalar
준수하는 유형에서 생성될 수 있는 TensorFlow 동적 유형 값입니다.선언
public struct TensorDataType : Equatable
선언
잠재적으로 큰 요소 집합을 나타냅니다.
Dataset
입력 파이프라인을 요소 텐서의 컬렉션으로 표현하는 데 사용할 수 있습니다.선언
@available(*, deprecated, message: "Datasets will be removed in S4TF v0.10. Please use the new Batches API instead.") @frozen public struct Dataset<Element> where Element : TensorGroup
extension Dataset: Sequence
데이터 세트의 요소에 대한 반복을 허용하는 유형입니다.
선언
@available(*, deprecated) @frozen public struct DatasetIterator<Element> where Element : TensorGroup
extension DatasetIterator: IteratorProtocol
TensorGroup 을 준수하는 2가지 유형의 튜플을 나타내는
TensorGroup
준수하는 2-튜플형 구조체입니다.선언
@frozen public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
조밀하게 연결된 신경망 계층입니다.
Dense
activation(matmul(input, weight) + bias)
연산을 구현합니다. 여기서weight
는 가중치 행렬이고,bias
은 편향 벡터이며,activation
요소별 활성화 함수입니다.이 계층은 2차원 바이어스 행렬이 있는 3차원 가중치 텐서도 지원합니다. 이 경우 둘 다의 첫 번째 차원은
input
의 첫 번째 차원과 정렬된 배치 크기로 처리되고matmul(_:_:)
작업의 배치 변형이 사용되므로 각 요소에 대해 서로 다른 가중치와 편향이 사용됩니다. 입력 배치에서.선언
@frozen public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Tensor
를 할당할 수 있는 장치입니다.선언
public struct Device
extension Device: Equatable
extension Device: CustomStringConvertible
드롭아웃 레이어.
드롭아웃은 훈련 시간 동안 업데이트될 때마다 입력 단위의 일부를
0
으로 무작위로 설정하는 것으로 구성되며, 이는 과적합을 방지하는 데 도움이 됩니다.선언
@frozen public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianNoise
정규 분포에서 샘플링된 노이즈를 추가합니다.추가된 노이즈의 평균은 항상 0이지만 구성 가능한 표준 편차가 있습니다.
선언
public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianDropout
입력에 평균 1.0의 정규 분포에서 샘플링된 노이즈를 곱합니다.이는 정규화 계층이므로 훈련 시간에만 활성화됩니다. 추론 중에
GaussianDropout
수정되지 않은 입력을 통과합니다.선언
public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
알파 드롭아웃 레이어.
알파 드롭아웃(Alpha Dropout)은 드롭아웃 후에도 자체 정규화 속성을 보장하기 위해 입력의 평균과 분산을 원래 값으로 유지하는
Dropout
입니다. Alpha Dropout은 활성화를 음수 포화 값으로 무작위로 설정하여 Scaled Exponential Linear Units에 잘 맞습니다.출처: 자체 정규화 신경망: https://arxiv.org/abs/1706.02515
선언
@frozen public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
임베딩 레이어.
Embedding
사실상 고정 어휘의 인덱스를 고정 크기(밀도) 벡터 표현(예:[[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]
으로 매핑하는 조회 테이블입니다.선언
public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
매개변수 없는 레이어에 대한 빈
TangentVector
를 나타내는 빈 구조체입니다.선언
public struct EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
첫 번째와 두 번째 적률의 쌍(즉, 평균과 분산).
메모
이는 튜플 유형이 구별 가능하지 않기 때문에 필요합니다.선언
public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
2차원 형태학적 팽창층
이 레이어는 제공된 필터를 사용하여 입력 텐서의 형태적 확장을 반환합니다.
선언
@frozen public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
2차원 형태학적 침식층
이 레이어는 제공된 필터를 사용하여 입력 텐서의 형태적 침식을 반환합니다.
선언
@frozen public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
일부 기본 컬렉션에서 지정된 순서로 요소를 게으르게 선택하는 것입니다.
선언
public struct Sampling<Base: Collection, Selection: Collection> where Selection.Element == Base.Index
extension Sampling: SamplingProtocol
extension Sampling: Collection
extension Sampling: BidirectionalCollection where Selection: BidirectionalCollection
extension Sampling: RandomAccessCollection where Selection: RandomAccessCollection
첫 번째 요소로 시작하고 고정된 최대 길이를 갖는 일부
Base
컬렉션의 가장 길고 겹치지 않는 연속 슬라이스 컬렉션입니다.마지막을 제외하고 이 컬렉션의 요소는 모두
batchSize
의count
갖습니다. 단,Base.count % batchSize !=0
아닌 경우 마지막 배치의count
는base.count % batchSize.
선언
public struct Slices<Base> where Base : Collection
extension Slices: Collection
배치 정규화 계층.
각 배치에서 이전 레이어의 활성화를 정규화합니다. 즉, 평균 활성화를
0
에 가깝게 유지하고 활성화 표준 편차를1
에 가깝게 유지하는 변환을 적용합니다.선언
@frozen public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
입력의 미니 배치에 대해 레이어 정규화를 적용하는 레이어입니다.
참조: 레이어 정규화 .
선언
@frozen public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
입력의 미니 배치에 대해 그룹 정규화를 적용하는 레이어입니다.
참조: 그룹 정규화 .
선언
@frozen public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
미니 배치 입력에 대해 인스턴스 정규화를 적용하는 계층입니다.
선언
@frozen public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
옵티마이저 내 단일 가중치의 단일 단계에 대한 상태입니다.
선언
public struct OptimizerWeightStepState
StateAccessor
통해 액세스되는 전역 상태입니다.선언
public struct OptimizerState
[String: Float]
하지만 요소는 멤버인 것처럼 액세스할 수 있습니다.선언
@dynamicMemberLookup public struct HyperparameterDictionary
단일 매개변수 그룹에서 작동하는 최적화 프로그램입니다.
선언
public struct ParameterGroupOptimizer
최적화 로컬 값에 대한
Int
인덱스 값을 둘러싼 유형 안전 래퍼입니다.선언
public struct LocalAccessor
최적화 전역 값에 대한
Int
인덱스 값을 둘러싼 유형 안전 래퍼입니다.선언
public struct GlobalAccessor
최적화 상태 값에 대한
Int
인덱스 값을 둘러싼 유형 안전 래퍼입니다.선언
public struct StateAccessor
ParameterGroupOptimizer
를 빌드합니다. 이는 기본적으로 모델의 단일 가중치 수준에서 사용됩니다. ([Bool]
에서 ParameterGroupOptimizer로)에 의해 선택된 매개변수 그룹의 매핑이 최종 최적화 프로그램을 정의합니다.선언
public struct ParameterGroupOptimizerBuilder
시간 데이터에 대한 최대 풀링 계층입니다.
선언
@frozen public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 데이터를 위한 최대 풀링 계층입니다.
선언
@frozen public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 또는 시공간 데이터를 위한 최대 풀링 계층입니다.
선언
@frozen public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
시간 데이터에 대한 평균 풀링 계층입니다.
선언
@frozen public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 데이터에 대한 평균 풀링 계층입니다.
선언
@frozen public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 또는 시공간 데이터에 대한 평균 풀링 레이어입니다.
선언
@frozen public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
시간 데이터에 대한 전역 평균 풀링 계층입니다.
선언
@frozen public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 데이터에 대한 전역 평균 풀링 계층입니다.
선언
@frozen public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 및 시공간 데이터에 대한 전역 평균 풀링 레이어입니다.
선언
@frozen public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
시간 데이터에 대한 전역 최대 풀링 계층입니다.
선언
@frozen public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 데이터를 위한 전역 최대 풀링 계층입니다.
선언
@frozen public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 및 시공간 데이터를 위한 전역 최대 풀링 레이어입니다.
선언
@frozen public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
공간 데이터를 위한 분수 최대 풀링 계층입니다. 참고:
FractionalMaxPool
XLA 구현이 없으므로 성능에 영향을 미칠 수 있습니다.선언
@frozen public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
PythonObject
Python의 개체를 나타내며 동적 멤버 조회를 지원합니다.object.foo
와 같은 모든 멤버 액세스는 이 객체에 지정된 이름을 가진 멤버에 대한 Python 런타임을 동적으로 요청합니다.PythonObject
모든 Python 함수 호출 및 멤버 참조로 전달되고 반환됩니다. 표준 Python 산술 및 비교 연산자를 지원합니다.내부적으로
PythonObject
Python C APIPyObject
에 대한 참조 횟수 포인터로 구현됩니다.선언
@dynamicCallable @dynamicMemberLookup public struct PythonObject
extension PythonObject : CustomStringConvertible
extension PythonObject : CustomPlaygroundDisplayConvertible
extension PythonObject : CustomReflectable
extension PythonObject : PythonConvertible, ConvertibleFromPython
extension PythonObject : SignedNumeric
extension PythonObject : Strideable
extension PythonObject : Equatable, Comparable
extension PythonObject : Hashable
extension PythonObject : MutableCollection
extension PythonObject : Sequence
extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral, ExpressibleByFloatLiteral, ExpressibleByStringLiteral
extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral
메서드 호출을 발생시킬 수 있는
PythonObject
래퍼입니다. Python 함수에서 생성된 예외는 Swift 오류로 반영되어 발생합니다.메모
호출 구문이 직관적이지 않기 때문에ThrowingPythonObject
에@dynamicCallable
속성이 없는 것은 의도적인 것입니다:x.throwing(arg1, arg2, ...)
. 추가 논의/설계가 이루어질 때까지 메서드 이름은 여전히dynamicallyCall
로 지정됩니다.선언
public struct ThrowingPythonObject
멤버 액세스를 활성화하는
PythonObject
래퍼입니다. 구성원 액세스 작업은Optional
결과를 반환합니다. 구성원 액세스에 실패하면nil
반환됩니다.선언
@dynamicMemberLookup public struct CheckingPythonObject
Python용 인터페이스입니다.
PythonInterface
Python과의 상호 작용을 허용합니다. 모듈을 가져오고 Python 내장 유형 및 함수에 동적으로 액세스하는 데 사용할 수 있습니다.선언
@dynamicMemberLookup public struct PythonInterface
선언
public struct PythonLibrary
유형이 지워진 난수 생성기입니다.
AnyRandomNumberGenerator
유형은 난수 생성 작업을 기본 난수 생성기로 전달하여 특정 기본 유형을 숨깁니다.선언
public struct AnyRandomNumberGenerator : RandomNumberGenerator
ARC4를 사용한
SeedableRandomNumberGenerator
구현입니다.ARC4는 의사 무작위 바이트 스트림을 생성하는 스트림 암호입니다. 이 PRNG는 시드를 키로 사용합니다.
ARC4는 Schneier, B., "Applied Cryptography: Protocols, Algorithms, and Source Code in C", 2nd Edition, 1996에 설명되어 있습니다.
개별 생성기는 스레드로부터 안전하지 않지만 개별 생성기는 상태를 공유하지 않습니다. 생성된 무작위 데이터는 고품질이지만 암호화 응용 프로그램에는 적합하지 않습니다.
선언
@frozen public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
Threefry를 사용하여
SeedableRandomNumberGenerator
를 구현합니다. Salmonet al. SC 2011. 병렬 난수: 1, 2, 3만큼 쉽습니다 . http://www.thesalmons.org/john/random123/papers/random123sc11.pdf이 구조체는 20라운드 Threefry2x32 PRNG를 구현합니다. 64비트 값으로 시드되어야 합니다.
개별 생성기는 스레드로부터 안전하지 않지만 개별 생성기는 상태를 공유하지 않습니다. 생성된 무작위 데이터는 고품질이지만 암호화 응용 프로그램에는 적합하지 않습니다.
선언
public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
Philox를 사용하여
SeedableRandomNumberGenerator
를 구현합니다. Salmonet al. SC 2011. 병렬 난수: 1, 2, 3만큼 쉽습니다 . http://www.thesalmons.org/john/random123/papers/random123sc11.pdf이 구조체는 10라운드 Philox4x32 PRNG를 구현합니다. 64비트 값으로 시드되어야 합니다.
개별 생성기는 스레드로부터 안전하지 않지만 개별 생성기는 상태를 공유하지 않습니다. 생성된 무작위 데이터는 고품질이지만 암호화 응용 프로그램에는 적합하지 않습니다.
선언
public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
선언
@frozen public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
선언
@frozen public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
선언
@frozen public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
선언
@frozen public struct BetaDistribution : RandomDistribution
순환 신경망에 대한 입력입니다.
선언
public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
extension RNNCellInput: EuclideanDifferentiable where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
순환 신경망에 대한 출력입니다.
선언
public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
extension RNNCellOutput: EuclideanDifferentiable where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
기본 RNN 셀.
선언
public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
LSTM 셀.
선언
public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
GRU 셀.
선언
public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
선언
public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
extension RecurrentLayer: Equatable where Cell: Equatable
extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
선언
public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer where Cell.TimeStepOutput: Mergeable
두 개 이상의 다른 레이어를 순차적으로 구성하는 레이어입니다.
예:
- MNIST를 위한 간단한 2계층 퍼셉트론 모델을 구축합니다.
let inputSize = 28 * 28 let hiddenSize = 300 var classifier = Sequential { Dense<Float>(inputSize: inputSize, outputSize: hiddenSize, activation: relu) Dense<Float>(inputSize: hiddenSize, outputSize: 3, activation: identity) }
- MNIST용 자동 인코더를 빌드합니다.
var autoencoder = Sequential { // The encoder. Dense<Float>(inputSize: 28 * 28, outputSize: 128, activation: relu) Dense<Float>(inputSize: 128, outputSize: 64, activation: relu) Dense<Float>(inputSize: 64, outputSize: 12, activation: relu) Dense<Float>(inputSize: 12, outputSize: 3, activation: relu) // The decoder. Dense<Float>(inputSize: 3, outputSize: 12, activation: relu) Dense<Float>(inputSize: 12, outputSize: 64, activation: relu) Dense<Float>(inputSize: 64, outputSize: 128, activation: relu) Dense<Float>(inputSize: 128, outputSize: imageHeight * imageWidth, activation: tanh) }
선언
@_functionBuilder public struct LayerBuilder
ShapedArray
는 다차원 배열입니다.[Int]
유형을 갖고 배열 크기를 정의하며 내부적으로TensorBuffer
저장소로 사용하는 모양이 있습니다.선언
@frozen public struct ShapedArray<Scalar> : _ShapedArrayProtocol
extension ShapedArray: RandomAccessCollection, MutableCollection
extension ShapedArray: CustomStringConvertible
extension ShapedArray: CustomPlaygroundDisplayConvertible
extension ShapedArray: CustomReflectable
extension ShapedArray: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
extension ShapedArray: Equatable where Scalar: Equatable
extension ShapedArray: Hashable where Scalar: Hashable
extension ShapedArray: Codable where Scalar: Codable
ShapedArray
또는ShapedArraySlice
인스턴스의 연속 조각입니다.ShapedArraySlice
ShapedArray
인스턴스의 연속 슬라이스에서 빠르고 효율적인 작업을 수행할 수 있습니다.ShapedArraySlice
인스턴스에는 자체 저장소가 없습니다. 대신, 기본ShapedArray
저장소에 대한 보기를 제공합니다.ShapedArraySlice
요소 배열과 하위 배열이라는 두 가지 종류의 슬라이스를 나타낼 수 있습니다.요소 배열은
ShapedArray
의 하위 차원 요소입니다. 해당 순위는 기본 순위보다 1 낮습니다. 요소 배열 슬라이스는 단일Int32
인덱스를 사용하여ShapedArray
인스턴스를 인덱싱하여 얻습니다.예를 들어:
var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3]) // `matrix` represents [[0, 1], [2, 3]]. let element = matrix[0] // `element` is a `ShapedArraySlice` with shape [2]. It is an element // array, specifically the first element in `matrix`: [0, 1]. matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8]) // The second element in `matrix` has been mutated. // `matrix` now represents [[0, 1, 4, 8]].
하위 배열은
ShapedArray
에 있는 요소의 연속 범위입니다. 하위 배열의 순위는 기본 순위와 동일하지만 선행 차원은 슬라이스 범위의 개수입니다. 하위 배열 조각은 요소 범위(선행 차원)를 나타내는Range<Int32>
를 사용하여ShapedArray
인덱싱하여 얻습니다. 내부적으로 범위를 사용하여 색인을 생성하는prefix(:)
및suffix(:)
와 같은 메서드도 하위 배열을 생성합니다.예를 들어:
let zeros = ShapedArray(repeating: 0, shape: [3, 2]) var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6)) // `zeros` represents [[0, 0], [0, 0], [0, 0]]. // `matrix` represents [[0, 1], [2, 3], [4, 5]]. let subarray = matrix.prefix(2) // `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice // of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]]. matrix[0..<2] = zeros.prefix(2) // The first 2 elements in `matrix` have been mutated. // `matrix` now represents [[0, 0], [0, 0], [4, 5]].
선언
@frozen public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
extension ShapedArraySlice: RandomAccessCollection, MutableCollection
extension ShapedArraySlice: CustomStringConvertible
extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
extension ShapedArraySlice: CustomReflectable
extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
extension ShapedArraySlice: Equatable where Scalar: Equatable
extension ShapedArraySlice: Hashable where Scalar: Hashable
extension ShapedArraySlice: Codable where Scalar: Codable
StringTensor
는 요소가String
인 다차원 배열입니다.선언
@frozen public struct StringTensor
extension StringTensor: TensorGroup
TensorHandle
ops에서 사용되는 유형입니다. 여기에는 컴파일러 내부가 텐서 프로그램으로 추출될 때 매개변수의 데이터 유형을 결정하는 데 사용할 수 있는Scalar
유형이 포함되어 있습니다.선언
public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
extension TensorHandle: TensorGroup
선언
public struct ResourceHandle
extension ResourceHandle: TensorGroup
선언
public struct VariantHandle
extension VariantHandle: TensorGroup
텐서의 모양을 나타내는 구조체입니다.
TensorShape
는 모양 차원을 나타내는 정수 배열을 둘러싸는 얇은 래퍼입니다. 모든 텐서 유형은TensorShape
사용하여 모양을 나타냅니다.선언
@frozen public struct TensorShape : ExpressibleByArrayLiteral
extension TensorShape: Collection, MutableCollection
extension TensorShape: RandomAccessCollection
extension TensorShape: RangeReplaceableCollection
extension TensorShape: Equatable
extension TensorShape: Codable
extension TensorShape: CustomStringConvertible
TensorVisitorPlan은
[WritableKeyPath<Base, Tensor<Float>]
에 가깝지만 더 효율적입니다. 이는 그라디언트, 기존 가중치 및 보조적으로 저장된 가중치를 찾는 데 사용할 수 있는 인덱스를 매핑하려는 일반 최적화 프로그램을 작성하는 데 유용합니다. 이는 약간 더 효율적이지만(~2x) 각 개별 KeyPath를 추적하기 위해 일반 목록에 필요한 O(length_of_tree) 작업을 수행할 필요가 없기 때문에 약간 더 높은 오버헤드(추가 포인터 역참조)를 상쇄하므로 더 나을 수 있습니다.선언
public struct TensorVisitorPlan<Base>
1차원 입력을 위한 업샘플링 레이어.
선언
@frozen public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
2차원 입력을 위한 업샘플링 레이어.
선언
@frozen public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
3D 입력을 위한 업샘플링 레이어.
선언
@frozen public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
올바른 예측 카운터와 손실 합계를 수집합니다.
선언
public struct HostStatistics