構造体

次の構造は世界中で利用可能です。

  • 同じ要素タイプを持つ 2 つのシーケンスの連結。

    宣言

    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テンソル内のスカラーのタイプ ( Int32Floatなど) を記述します。

    宣言

    @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
  • 2 つのTensorsをブロードキャストする転置を実行するプルバック関数。

    宣言

    public struct BroadcastingPullback
  • レイヤーなどの深層学習 API によって使用されるスレッドローカルのコンテキスト情報を格納するコンテキスト。

    Context.localを使用して、現在のスレッドローカル コンテキストを取得します。

    例:

    • 現在の学習フェーズをトレーニングに設定して、 BatchNormなどのレイヤーが入力に適用されたときに平均と分散を計算できるようにします。
      Context.local.learningPhase = .training
    
    • Dropoutなどのレイヤーが入力に適用されたときにユニットがドロップアウトしないように、現在の学習フェーズを推論に設定します。
      Context.local.learningPhase = .inference
    

    宣言

    public struct Context
  • 1-D 畳み込み層 (時系列にわたる時間畳み込みなど)。

    この層は、層の入力と畳み込まれて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2-D 畳み込みレイヤー (画像上の空間畳み込みなど)。

    この層は、層の入力と畳み込まれて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 画像上の空間/時空間コンボリューションのための 3-D コンボリューション レイヤー。

    この層は、層の入力と畳み込まれて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 1-D 転置畳み込み層 (例: 画像上の時間転置畳み込み)。

    この層は、層入力と転置畳み込みされて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2-D 転置畳み込みレイヤー (例: 画像上の空間転置畳み込み)。

    この層は、層入力と転置畳み込みされて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 3-D 転置畳み込みレイヤー (例: 画像上の空間転置畳み込み)。

    この層は、層入力と転置畳み込みされて出力のテンソルを生成する畳み込みフィルターを作成します。

    宣言

    @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
  • 2 次元の分離可能な畳み込み層。

    この層は、チャネルに個別に作用する深さ方向の畳み込みを実行し、続いてチャネルを混合する点方向の畳み込みを実行します。

    宣言

    @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 、正規分布からサンプリングされたノイズを追加します。

    追加されるノイズの平均は常にゼロですが、標準偏差は構成可能です。

    宣言

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout平均 1.0 の正規分布からサンプリングされたノイズを入力に乗算します。

    これは正則化層であるため、トレーニング時間中にのみアクティブになります。推論中、 GaussianDropout入力を変更せずに通過させます。

    宣言

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • アルファドロップアウトレイヤー。

    アルファ ドロップアウトは、このドロップアウトの後でも自己正規化特性を保証するために、入力の平均と分散を元の値に維持するDropoutです。アルファ ドロップアウトは、アクティベーションを負の飽和値にランダムに設定することにより、スケーリングされた指数線形単位によく適合します。

    出典 : 自己正規化ニューラル ネットワーク: 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
  • 2D 形態学的拡張レイヤー

    この層は、提供されたフィルターを使用して入力テンソルの形態学的膨張を返します。

    宣言

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2-D 形態侵食層

    この層は、提供されたフィルターを使用して入力テンソルの形態的浸食を返します。

    宣言

    @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コレクションの重複しない連続スライスのコレクション。最初の要素から始まり、一定の最大長が固定されています。

    このコレクションの最後の要素を除くすべての要素は、 Base.count % batchSize !=0 batchSize count 、最後のバッチの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 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 エラーとして反映され、スローされます。

    注記

    呼び出し構文x.throwing(arg1, arg2, ...)が直感的ではないため、 ThrowingPythonObject@dynamicCallable属性がないのは意図的です。さらなる議論/設計が行われるまで、メソッドの名前は引き続き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」、第 2 版、1996 年に説明されています。

    個々のジェネレーターはスレッドセーフではありませんが、個別のジェネレーターは状態を共有しません。生成されるランダム データは高品質ですが、暗号化アプリケーションには適していません。

    宣言

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Threefry を使用したSeedableRandomNumberGeneratorの実装。サーモンら。 SC 2011。並列乱数: 1、2、3 と同じくらい簡単。 http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    この構造体は、20 ラウンドの Threefry2x32 PRNG を実装します。 64 ビット値をシードする必要があります。

    個々のジェネレーターはスレッドセーフではありませんが、個別のジェネレーターは状態を共有しません。生成されるランダム データは高品質ですが、暗号化アプリケーションには適していません。

    宣言

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Philox を使用したSeedableRandomNumberGeneratorの実装。サーモンら。 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
  • 他の 2 つ以上のレイヤーを連続して構成するレイヤー。

    例:

    • 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 、要素配列と部分配列という 2 つの異なる種類のスライスを表すことができます。

    要素配列はShapedArrayのサブディメンション要素です。そのランクはベースのランクより 1 つ小さいです。要素配列スライスは、 ShapedArrayインスタンスに単数のInt32インデックスを付けることによって取得されます。

    例えば:

        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>]を近似しますが、より効率的です。これは、勾配、既存の重み、補助的に保存された重みを見つけるために使用できるインデックスをマッピングする汎用オプティマイザーを作成する場合に便利です。これは若干効率的 (~2 倍) ですが、個々の KeyPath を追跡するために単純なリストで必要とされる O( Depth_of_tree) 作業を実行する必要がないため、わずかに高いオーバーヘッド (追加のポインタ逆参照) をトレードオフするため、より良い可能性があります。

    宣言

    public struct TensorVisitorPlan<Base>
  • 1 次元入力のアップサンプリング レイヤー。

    宣言

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 2D 入力のアップサンプリング レイヤー。

    宣言

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 3D 入力のアップサンプリング レイヤー。

    宣言

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 正しい予測カウンターと損失合計を収集します。

    宣言

    public struct HostStatistics