구조

다음 구조는 전 세계적으로 사용할 수 있습니다.

  • 요소 유형이 동일한 두 시퀀스의 연결입니다.

    선언

    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 유형은 해당 작업을 DifferentiableAdditiveArithmetic 준수하는 임의의 기본 기본 파생 값으로 전달하여 기본 값의 세부 사항을 숨깁니다.

    선언

    @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
  • 선언

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • 잠재적으로 큰 요소 집합을 나타냅니다.

    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 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 컬렉션의 가장 길고 겹치지 않는 연속 슬라이스 컬렉션입니다.

    마지막을 제외하고 이 컬렉션의 요소는 모두 batchSizecount 갖습니다. 단, Base.count % batchSize !=0 아닌 경우 마지막 배치의 countbase.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 API PyObject 에 대한 참조 횟수 포인터로 구현됩니다.

    선언

    @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 내장 유형 및 함수에 동적으로 액세스하는 데 사용할 수 있습니다.

    메모

    PythonInterface 직접 초기화하도록 의도되지 않았습니다. 대신 Python 이라는 PythonInterface 의 전역 인스턴스를 사용하세요.

    선언

    @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)
    }
    

    선언

    public struct Sequential<Layer1: Module, Layer2: Layer>: Module
        where Layer1.Output == Layer2.Input,
              Layer1.TangentVector.VectorSpaceScalar == Layer2.TangentVector.VectorSpaceScalar
    extension Sequential: Layer where Layer1: Layer
  • 선언

    @_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