EmbeddingLayer[size,n]
1から n までの整数を次元 size の連続ベクトル空間に埋め込む訓練可能な層を表す.
EmbeddingLayer[size]
n がコンテキストから推測されるままにする.
EmbeddingLayer
EmbeddingLayer[size,n]
1から n までの整数を次元 size の連続ベクトル空間に埋め込む訓練可能な層を表す.
EmbeddingLayer[size]
n がコンテキストから推測されるままにする.
詳細とオプション
- EmbeddingLayerは,単一の整数あるいは階数 k の整数配列に作用し,前者の場合はベクトルを,後者の場合は階数 k+1の配列を生成する.
- EmbeddingLayer[size]を指定すると,整数を生成するNetEncoder[…]が入力に接続された場合に n を推測するネットが作成される.
- EmbeddingLayerが行う埋込みは,訓練中に学習される.
- 次の任意のパラメータを含めることができる.
-
LearningRateMultipliers Automatic 重みの学習率乗数 "Weights" Automatic initial matrix of weights of dimensions n×size - Automaticの設定のとき,NetInitializeあるいはNetTrainが使われると重みが自動的に加えられる.
- 重みが加えられると,EmbeddingLayer[…][input]は層を適用して明示的に出力を計算する.
- EmbeddingLayer[…][{input1,input2,…}]は各 inputiについて明示的に出力を計算する.
- NumericArrayが入力として与えられると,出力はNumericArrayになる.
- NetExtractを使ってEmbeddingLayerオブジェクトから重みを抽出することができる.
- EmbeddingLayerは,NetChain,NetGraph等の中で使われることが多い.
- EmbeddingLayerはNetGraph等で使うために次のポートを開放する.
-
"Input" 整数または階数 k の整数配列 "Output" ベクトルまたは階数 k+1の配列 - EmbeddingLayer[size,n,"Input"->shape]で入力の形状を指定することができる.次は shape の可能な形である.
-
NetEncoder[…] 整数または整数配列を生成するエンコーダ "Integer" 単一の整数 d 長さ d の整数ベクトル {d1,d2,…} 次元 d1×d2×…の整数配列 "Varying" 可変長の整数ベクトル {"Varying",d2,d3,…} 第1次元が可変長で残りの次元が d2×d3×…の配列 - Options[EmbeddingLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[EmbeddingLayer[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[EmbeddingLayer[…]]は層についてのレポートを与える.
- Information[EmbeddingLayer[…],prop]はEmbeddingLayer[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開く すべて閉じる例 (2)
整数1,2,3を取り,サイズ4のベクトルを生成するEmbeddingLayerを作る:
EmbeddingLayer[4, 3]整数1,2,3を取りサイズ2のベクトルを生成する,ランダムに初期化されたEmbeddingLayerを作る:
embed = NetInitialize@EmbeddingLayer[2, 3]out = embed[2]
Dimensions[out]out = embed[{1, 2, 1}];
Dimensions[out]スコープ (4)
1から10までの整数の可変長数列を最終次元がサイズ2の行列によって表される長さ2のベクトル列に埋め込む,ランダムに初期化されたEmbeddingLayerを作る:
embed = NetInitialize@EmbeddingLayer[2, 10, "Input" -> "Varying"]embed[{1, 2, 3}]//MatrixFormembed[{{1, 2, 3}, {1, 2, 3, 4}, {2}}]//Map[MatrixForm]符号化された入力を持つEmbeddingLayerを作る.n はエンコーダから推測される:
embed = EmbeddingLayer[5, "Input" -> NetEncoder[{"Class", {a, b, c}}]]embed = NetInitialize[embed]embed[{a, b, a, c}]//MatrixForm入力が文字列を表す整数列であるEmbeddingLayerを作る:
encoder = NetEncoder["Characters"];
embed = NetInitialize@EmbeddingLayer[2, "Input" -> encoder]embed["ABABBC"]//MatrixForm入力が文字列からのトークンを表すコードの列であるEmbeddingLayerを作る:
encoder = NetEncoder["Tokens"];
embed = NetInitialize@EmbeddingLayer[2, "Input" -> encoder]embed["how are you today"]//MatrixFormオプション (1)
"Weights" (1)
重みを明示的に指定してEmbeddingLayerを作る:
embed = EmbeddingLayer["Weights" -> {{1, 0, 1, 0}, {0, 1, 1, 0}}]embed[2]embed[1]アプリケーション (2)
テキスト処理のアプリケーションでは,単語全体に作用するネットワークが埋込みを使って人間の言語の膨大な語彙を操作可能なベクトルサイズに圧縮することが多い.
文字列からの連続する単語をサイズ10のベクトル列に埋め込み,次にそれらのベクトルを処理し,再帰層を使って最終ベクトルを作成する鎖を作る.まず,一般的な英単語を使ってエンコーダを作る:
encoder = NetEncoder["Tokens"]encoder["this is a sentence"]ネットを作り,入力にエンコーダを付けてランダムに初期化する:
net = NetChain[{EmbeddingLayer[5], BasicRecurrentLayer[4], SequenceLastLayer[]}, "Input" -> encoder]net = NetInitialize[net];net["this is a sentence"]net["and another sentence"]NetModelを使って訓練済みのEmbeddingLayerを得る:
net = NetModel["GloVe 50-Dimensional Word Vectors Trained on Wikipedia and Gigaword-5 Data"]NetEncoderはネットの入力に加えられている:
NetExtract[net, "Input"]net["hello world"]net["it always seems impossible until it is done"]//MatrixPlot特性と関係 (1)
初期化されたEmbeddingLayerを指標のリストについて評価する:
embed = NetInitialize@EmbeddingLayer[5, 2];
indices = {1, 2, 1};
embed[indices]NetExtract[embed, "Weights"][[indices]]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2016), EmbeddingLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/EmbeddingLayer.html (2020年に更新).
CMS
Wolfram Language. 2016. "EmbeddingLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/EmbeddingLayer.html.
APA
Wolfram Language. (2016). EmbeddingLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EmbeddingLayer.html
BibTeX
@misc{reference.wolfram_2026_embeddinglayer, author="Wolfram Research", title="{EmbeddingLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/EmbeddingLayer.html}", note=[Accessed: 15-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_embeddinglayer, organization={Wolfram Research}, title={EmbeddingLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/EmbeddingLayer.html}, note=[Accessed: 15-September-2026]}