Google I/O est terminé ! Suivez les sessions TensorFlow Afficher les sessions

Protocoles

Les protocoles suivants sont disponibles dans le monde entier.

  • Fournit des points de personnalisation pour MutableCollection algorithmes.

    Si incorporée dans la bibliothèque standard, ces exigences seraient tout simplement partie de MutableCollection . En attendant, vous pouvez déclarer la conformité d'une collection à MutableCollectionAlgorithms pour obtenir ces points de personnalisation à utiliser 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 qui sont conformes à TensorFlowScalar peuvent être utilisés comme Scalar type associé de Tensor .

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

    Déclaration

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • Une donnée à virgule flottante de type qui est conforme à Differentiable et est compatible avec tensorflow.

    Noter

    Tensor conforme à conditionnellement à Differentiable lorsque le Scalar type associé 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 par points.

    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 aucune forme ou une forme statique.

    Déclaration

    public protocol VectorProtocol : AdditiveArithmetic
  • Un type différentiable dans l'espace euclidien. Le type peut représenter un espace vectoriel, ou consister en un espace vectoriel et un autre composant non différentiable.

    Mathématiquement, cela représente une variété de produits qui se compose d'un espace vectoriel différentiable et d'une variété arbitraire, où le fibré tangent de l'ensemble de la variété de produits est égal à la composante de l'espace vectoriel.

    Cette abstraction est utile pour représenter des structures de données différenciables 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ée, par exemple

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

    Noter

    Conform un type de EuclideanDifferentiable si elle est différentiable uniquement par rapport à son composant d'espace vectoriel , et lorsque son TangentVector est égale à sa composante d'espace de vecteur.

    Déclaration

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

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

    Layer instances définissent une différentiable callAsFunction(_:) méthode pour les entrées de mappage aux sorties.

    Déclaration

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

    Le TangentVector des couches est toujours sans paramètre 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 construit des puissances, des racines, exponentielles, logarithmes, fonctions trigonométriques (sin, cos, tan) et leurs inverses, les 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 de mise en œuvre utilisée au travail autour du fait que Swift ne peut pas exprimer une contrainte générique qu'un certain type doit être une instance d' Sampling .

    Déclaration

    public protocol SamplingProtocol : Collection
  • Un type qui peut être initialisée à partir d' un numpy.ndarray exemple représenté comme un PythonObject .

    Déclaration

    public protocol ConvertibleFromNumpyArray
  • Un 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 un 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 ensemencées.

    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 exécution à l'autre.

    Conformité au protocole SeedableRandomNumberGenerator

    Pour un type personnalisé conforme au SeedableRandomNumberGenerator protocole, mettre en œuvre le init(seed: [UInt8]) initialiseur, ainsi que les exigences pour RandomNumberGenerator . Les valeurs retournées par next() doit former une séquence déterministe qui ne dépend que de la semence 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 mis en correspondance avec Array<CTensorHandle> .

    Ce protocole est défini séparément du TensorGroup pour que le nombre de tenseurs à déterminer lors de 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 conformes tout au TensorGroup protocole. Il ne peut pas être dérivée automatiquement pour les structures dont les propriétés se conformer à toutes TensorArrayProtocol en raison de l'exigence du constructeur ( à savoir, dans ce cas , il serait impossible de savoir comment briser count entre les propriétés stockées).

    Déclaration

    public protocol TensorArrayProtocol
  • Un protocole représentant les types qui peuvent être mis en correspondance et de Array<CTensorHandle> .

    Quand un TensorGroup est utilisée comme argument pour une opération de tenseur, il est transmis comme une liste d'arguments dont les éléments sont les champs de tenseurs de type.

    Lorsqu'un TensorGroup est retourné à la suite d'une opération de tenseur, il est initialisé avec ses champs de tenseurs définis aux résultats du tenseur de l'opération tenseur.

    Déclaration

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

    Déclaration

    public protocol XLAScalarType