Cette page a été traduite par l'API Cloud Translation.
Switch to English

Protocoles

Les protocoles suivants sont disponibles dans le monde entier.

  • Fournit des points de personnalisation pour les algorithmes MutableCollection .

    Si elles étaient incorporées dans la bibliothèque standard, ces exigences ne feraient que partie de MutableCollection . En attendant, vous pouvez déclarer la conformité d'une collection à MutableCollectionAlgorithms pour obtenir ces points de personnalisation à utiliser à partir d'autres algorithmes définis sur MutableCollectionAlgorithms .

    Déclaration

    public protocol MutableCollectionAlgorithms: MutableCollection
    where SubSequence: MutableCollectionAlgorithms
  • Déclaration

    public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
  • Déclaration

    public protocol TensorRangeExpression
  • Types dont les éléments peuvent être regroupés dans un élément de rang supérieur du même type (exemple: tenseurs, tuple de tenseurs)

    Déclaration

    public protocol Collatable
  • Un type dont les propriétés et les éléments imbriqués peuvent être copiés sur un Device .

    Déclaration

    public protocol CopyableToDevice : _CopyableToDevice
  • Un type dont les valeurs fournissent des chemins de clé personnalisés vers des propriétés ou des éléments.

    Déclaration

    public protocol KeyPathIterable : _KeyPathIterableBase
  • Un type de données scalaire compatible avec TensorFlow.

    Les types conformes à TensorFlowScalar peuvent être utilisés comme type de Tensor associé Scalar .

  • Un type de données entier qui représente des types entiers qui peuvent être utilisés comme indices de tenseur dans TensorFlow.

    Déclaration

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • Type de données à virgule flottante conforme à Differentiable et compatible avec TensorFlow.

    Remarque

    Tensor se conforme conditionnellement à Differentiable lorsque le type associé Scalar est conforme à TensorFlowFloatingPoint .

    Déclaration

    public protocol TensorFlowFloatingPoint:
      TensorFlowScalar & BinaryFloatingPoint & Differentiable & ElementaryFunctions
    where
      Self.RawSignificand: FixedWidthInteger,
      Self == Self.TangentVector
  • Un type qui représente mathématiquement une variété différentiable dont les espaces tangents sont de dimension finie.

    Déclaration

    public protocol Differentiable
  • Un type avec des valeurs qui prennent en charge la multiplication ponctuelle.

    Déclaration

    public protocol PointwiseMultiplicative : AdditiveArithmetic
  • Un type qui représente un espace vectoriel non classé. Les valeurs de ce type sont des éléments de cet espace vectoriel et n'ont pas de forme ou une forme statique.

    Déclaration

    public protocol VectorProtocol : AdditiveArithmetic
  • Un type qui est différentiable dans l'espace euclidien. Le type peut représenter un espace vectoriel ou être constitué d'un espace vectoriel et d'un autre composant non différentiable.

    Mathématiquement, cela représente une variété de produits qui consiste en un espace vectoriel différentiable et une variété arbitraire, où le faisceau tangent de la variété de produits entière est égal à la composante d'espace vectoriel.

    Cette abstraction est utile pour représenter des structures de données différentiables communes qui contiennent à la fois des propriétés vectorielles différentiables et d'autres propriétés stockées qui n'ont pas de dérivé, par exemple

    struct Perceptron: @memberwise EuclideanDifferentiable {
        var weight: SIMD16<Float>
        var bias: Float
        @noDerivative var useBias: Bool
    }
    

    Remarque

    Conforme un type à EuclideanDifferentiable s'il n'est différentiable que par rapport à sa composante d'espace vectoriel et lorsque son TangentVector est égal à sa composante d'espace vectoriel.

    Déclaration

    public protocol EuclideanDifferentiable : Differentiable
  • Une couche de réseau neuronal.

    Les types conformes à Layer représentent des fonctions qui mappent les entrées aux sorties. Ils peuvent avoir un état interne représenté par des paramètres, tels que des tenseurs de poids.

    Layer instances de Layer définissent une callAsFunction(_:) pour mapper les entrées aux sorties.

    Déclaration

    public protocol Layer : Module where Self.Input : Differentiable
  • Une couche de réseau neuronal sans paramètre.

    Le TangentVector des couches sans paramètre est toujours EmptyTangentVector .

    Déclaration

    public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
  • Un type qui a des fonctions élémentaires disponibles.

    Une «fonction élémentaire» est une fonction construite à partir de puissances, de racines, d'exponentielles, de logarithmes, de fonctions trigonométriques (sin, cos, tan) et de leurs inverses, et des fonctions hyperboliques (sinh, cosh, tanh) et leurs inverses.

    La conformité à ce protocole signifie que tous ces blocs de construction sont disponibles en tant que fonctions statiques sur le type.

    let x: Float = 1
    let y = Float.sin(x) // 0.84147096
    

    Déclaration

    public protocol ElementaryFunctions
  • Un type dont les propriétés et les éléments de tenseur à virgule flottante imbriqués peuvent être convertis d'une précision totale à une précision réduite et vice versa.

  • Un détail d'implémentation utilisé pour contourner le fait que Swift ne peut pas exprimer une contrainte générique selon laquelle un type doit être une instance d' Sampling .

    Déclaration

    public protocol SamplingProtocol : Collection
  • Un type qui peut être initialisé à partir d'une instance numpy.ndarray représentée sous la forme d'un PythonObject .

    Déclaration

    public protocol ConvertibleFromNumpyArray
  • Type compatible au niveau du bit avec un ou plusieurs types scalaires NumPy.

    Déclaration

    public protocol NumpyScalarCompatible
  • Un type dont les valeurs peuvent être converties en PythonObject .

    Déclaration

    public protocol PythonConvertible
  • Un type qui peut être initialisé à partir d'un PythonObject .

    Déclaration

    public protocol ConvertibleFromPython
  • Un type qui fournit des données pseudo-aléatoires déterministes prédéfinies.

    Un SeedableRandomNumberGenerator peut être utilisé partout où un RandomNumberGenerator serait utilisé. Il est utile lorsque les données pseudo-aléatoires doivent être reproductibles d'une série à l'autre.

    Conforme au protocole SeedableRandomNumberGenerator

    Pour rendre un type personnalisé conforme au protocole SeedableRandomNumberGenerator , implémentez l' init(seed: [UInt8]) , ainsi que les exigences de RandomNumberGenerator . Les valeurs renvoyées par next() doivent former une séquence déterministe qui dépend uniquement de la valeur de départ fournie lors de l'initialisation.

    Déclaration

    public protocol SeedableRandomNumberGenerator : RandomNumberGenerator
  • Déclaration

    public protocol RandomDistribution
  • Une cellule de couche récurrente.

    Déclaration

    public protocol RecurrentLayerCell: Layer
    where
      Input == RNNCellInput<TimeStepInput, State>,
      Output == RNNCellOutput<TimeStepOutput, State>
  • Un type avec des valeurs qui prennent en charge les opérations binaires différentiables.

    Utilisé par BidirectionalRecurrentLayer comme une exigence générique pour les fonctions de fusion.

    Déclaration

    public protocol Mergeable : AdditiveArithmetic, Differentiable
  • Déclaration

    public protocol TensorOperation
  • Déclaration

    public protocol TFTensorOperation : TensorOperation
  • Protocole spécial pour appeler des opérations tensorflow qui prennent des tableaux hétérogènes en entrée.

    Déclaration

    public protocol AnyTensor
  • Déclaration

    public protocol TensorProtocol
  • Déclaration

    public protocol DifferentiableTensorProtocol:
      TensorProtocol & Differentiable & EuclideanDifferentiable
    where Scalar: TensorFlowFloatingPoint
  • Un protocole représentant les types qui peuvent être mappés à Array<CTensorHandle> .

    Ce protocole est défini séparément de TensorGroup afin que le nombre de tenseurs soit déterminé à l'exécution. Par exemple, [Tensor<Float>] peut avoir un nombre inconnu d'éléments au moment de la compilation.

    Ce protocole peut être dérivé automatiquement pour les structures dont les propriétés stockées sont toutes conformes au protocole TensorGroup . Il ne peut pas être dérivé automatiquement pour les structures dont les propriétés sont toutes conformes à TensorArrayProtocol raison de l'exigence du constructeur (c'est-à-dire, dans de tels cas, il serait impossible de savoir comment décomposer le count parmi les propriétés stockées).

    Déclaration

    public protocol TensorArrayProtocol
  • Un protocole représentant les types qui peuvent être mappés vers et depuis Array<CTensorHandle> .

    Lorsqu'un TensorGroup est utilisé comme argument d'une opération de tenseur, il est passé sous la forme d'une liste d'arguments dont les éléments sont les champs de tenseur du type.

    Lorsqu'un TensorGroup est renvoyé suite à une opération de tenseur, il est initialisé avec ses champs de tenseur définis sur les résultats de tenseur de l'opération de tenseur.

    Déclaration

    public protocol TensorGroup : TensorArrayProtocol
  • Un type de données pris en charge dans x10.

    Déclaration

    public protocol XLAScalarType