clew

どっかの誰かの役にたてばうれしい。

DBN.py の実行。エラーについて簡単なテスト?を試してみた。

前回記事のエラーについて、簡単なテストを行ってみました。

今回はサンプルデータをそのまま使って、”一部を変えてみる”ということをやってみました。

変更した個所は以下の通り。

♯1 TEST

def test_dbn(pretrain_lr=0.1, pretraining_epochs=1000, k=1, \

finetune_lr=0.1, finetune_epochs=200)

~に続く X と Y のデータ入力箇所。

1、きれいに整列されていた ”X”、”Y”をそれぞれ横に並べ替えてみる。

  私が自分のデータを差し替えたような並びにしてみた。

結果:

ちゃんと動いて正常に結果が表示されました。

したがってデータの並べ方には問題がないと思われます。

♯2 TEST

2、データの並びは上の例のまま、以下の箇所を変更してみた。

  # construct DBN

dbn = DBN(input=x, label=y, n_ins=6, hidden_layer_sizes=[3, 3], n_outs=2, numpy_rng=rng)

赤いところの値を 6 → 10 に変更。

結果 :

昨日とまったく同じエラーが表示されました。

したがってデータと # construct DBN の値が一致していないということになります。

hidden_layer_sizes=[3, 3], の箇所は、数値をいじると結果の値が変わるだけで、エラーは起こらなかった。

n_outs=2, は、変更するとエラーになります。

ちなみに値を”1”に変更すると以下のエラーが出ました。

ValueError: non-broadcastable output operand with shape (3,1) doesn't match the broadcast shape (3,2)

何だかイマイチよく理解できませんが、トレーニングデータのインスタンスに合わせて、# construct DBN のインスタンスの値を変更するところは間違いないようです。

どこか他の箇所が間違っているようですが現段階では意味が理解できません。