プロトコル

次のプロトコルは世界中で利用できます。

  • 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に準拠した型は、 TensorScalar関連型として使用できます。

  • TensorFlow でテンソル インデックスとして使用できる整数型を表す整数データ型。

    宣言

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • Differentiableに準拠し、TensorFlow と互換性のある浮動小数点データ型。

    注記

    Scalar関連型がTensorFlowFloatingPointに準拠する場合、 Tensor条件付きでDifferentiableに準拠します。

    宣言

    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
  • ニューラルネットワーク層。

    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
  • 1 つ以上の NumPy スカラー型とビット単位で互換性のある型。

    宣言

    public protocol NumpyScalarCompatible
  • 値をPythonObjectに変換できる型。

    宣言

    public protocol PythonConvertible
  • PythonObjectから初期化できる型。

    宣言

    public protocol ConvertibleFromPython
  • シード可能な決定論的な擬似ランダム データを提供するタイプ。

    SeeedableRandomNumberGenerator は、RandomNumberGenerator が使用される場所ならどこでも使用できます。これは、複数の実行にわたって擬似ランダム データを再現できる必要がある場合に役立ちます。

    SeeedableRandomNumberGeneratorプロトコルに準拠

    カスタム型を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