大野です。
> これはaccuracy関数のtが一次元のベクトルを要求しているからだと認識していますが、このような出力ノードがラベル数あるようなネットワークについてaccuracyを求めるうまい方法はありますでしょうか?
ラベルごとにaccuracyを計算するか、全てのラベルを考慮して1つのaccuracyを計算するかが考えられますが、両方とも可能です。
前者の場合
split_axis Functionを用いて、shapeが共に(B, N)である予測結果xを、shapeが(B, )の配列がN個入ったtupleに変換します
(Bはバッチサイズ、Nはラベル数です)。同様の操作を正解ラベルtに対しても行います。
そして、対応するxとtの要素のN組のペアに対してそれぞれaccuracyを計算します。
後者の場合
2通りの方法が考えられます。1つ目は前者の方法で計算したそれぞれのaccuracyの平均をとる方法です。
もう1つの方法は、reshape Functionを用いて、shapeが(B, N)の予測結果xと正解ラベルを(B*N, )のshapeに変形して、
(1つの)accuracy Functionに与える方法です。