次の構造は世界中で利用可能です。
同じ要素タイプを持つ 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
テンソル内のスカラーのタイプ (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
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
宣言
潜在的に大規模な要素のセットを表します。
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 EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
一次モーメントと二次モーメントのペア (つまり、平均と分散)。
注記
タプル型は微分できないため、これが必要になります。宣言
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 APIPyObject
への参照カウントされたポインターとして実装されます。宣言
@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 の組み込み型と関数に動的にアクセスできます。宣言
@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) }
宣言
@_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