そもそも、
(1800, 3, 300, 1)
は四次元配列ではありませんよ。
これは、一次元配列に四つの値がある状態です。
四次元配列は、下のサンプルみたいに、もっと複雑なものです。
((2,3),((1,2),(3,4)),(12,(2,3),34)))
Like!
pythonで機械学習を行っているのですが、Githubにあるコードを動かしてみたところ、予測に用いる入力データと予測結果の出力データが4次元配列になってました。
(元のコードに、予測に用いる入力データと予測結果の形状がprintされるよう書き加えました。)
(1800, 3, 300, 1)
(3, 1800, 300, 1)
上が入力データで下が出力データの形状です。
それぞれ何を表しているのでしょうか?いまいち想像できません。
(データセットは独自の物に変えてます。重みつき隣接行列と10000タイムステップ×300ノードの行列を扱ってます)
また、このときの誤差を求めるのですが、1800と3が逆転している理由もわかりません。
誤差関数の例としては以下になります。
def MAE(v, v_):
"""
Mean absolute error.
:param v: np.ndarray or int, ground truth.
:param v_: np.ndarray or int, prediction.
:return: int, MAE averages on all elements of input.
"""
return np.mean(np.abs(v_ - v))
なぜ形状が違うのにこれで誤差が求められるのでしょうか?
回答いただけると幸いです。
PS.これは本来回帰問題なのですが、予測結果を整数で丸めて3ラベルの分類問題のように扱おうとしています。このとき誤差ではなく正答率を求めたいのですが、4次元配列ではどのようにすればいいでしょうか?
そもそも、
(1800, 3, 300, 1)
は四次元配列ではありませんよ。
これは、一次元配列に四つの値がある状態です。
四次元配列は、下のサンプルみたいに、もっと複雑なものです。
((2,3),((1,2),(3,4)),(12,(2,3),34)))
@katsuki5080
Questioner@katsuki5080
Questioner