シーケンスの最後の単語のラベルを取得して、シーケンスにラベルを付けるモデルをトレーニングしました。
Sequential([
Embedding(emb_dim),
cntk.ops.sequence.last(Recurrence(LSTM(hidden_dim), go_backwards=False)),
Dense(num_labels)
])
ここで、num_labels = 8
ここから GPU ライブラリを使用していますhttps://github.com/Microsoft/CNTK/wiki/NuGet-Package C# (CNTK v2.0.beta8.0) からモデルを使用します。
Variable outputVar = modelFunc.Outputs.Single();
var outputDataMap = new Dictionary<Variable, Value>();
outputDataMap.Add(outputVar, null);
modelFunc.Evaluate(inputDataMap, outputDataMap, device);
Value outputVal = outputDataMap[outputVar];
そして outputVal は: 次元: カウント = 3 ランク: 3 合計サイズ: 8
ディメンション: カウント = 1 ランク: 1 合計サイズ: 8
上記は正しいですか?outputVar と outputVal は同じディメンション/ランク/合計サイズになると予想されます。また、返されたクラスを抽出するにはどうすればよいですか? 基本的に、outputData にはどの C# タイプを使用すればよいですか? github の例のように 2 つのネストされたリストを試しましたが、うまくいきませんでした。outputVal.CopyVariableValueTo(outputVar, outputData);
ありがとうございました