前提・実現したいこと
chainerを用いて機械学習のモデルを弄っているのですが,
層を増やしただけで出力の次元がずれる?みたいです.
エラー内容は理解できますが, なぜこのようなエラーを吐くのか全く分かりません.
アドバイスまたは情報だけでも頂けると幸いです.
発生している問題・エラーメッセージ
ValueError: could not broadcast input array from shape (1024) into shape (17)
修正前のソースコード
python
1 with self.init_scope(): 2 self.l1 = L.Linear(n_in, n_unit, initialW=w) 3 self.l2 = L.Linear(n_unit, n_unit, initialW=w) 4 self.l3 = L.Linear(n_unit, n_unit, initialW=w) 5 self.l4 = L.Linear(n_unit, n_out, initialW=w) 6 7 if self.use_bn: 8 self.bn1 = L.BatchNormalization(n_unit) 9 self.bn2 = L.BatchNormalization(n_unit) 10 self.bn3 = L.BatchNormalization(n_unit) 11 12def __call__(self, x): 13 if self.use_bn: 14 h1 = self.activate_func(self.bn1(self.l1(x))) 15 h2 = self.activate_func(self.bn2(self.l2(h1))) 16 h3 = self.activate_func(self.bn3(self.l3(h2)) + h1) 17 else: 18 h1 = self.activate_func(self.l1(x)) 19 h2 = self.activate_func(self.l2(h1)) 20 h3 = self.activate_func(self.l3(h2) + h1) 21 return self.l4(h3) 22 23```### 修正後のソースコード 24 25```python 26 with self.init_scope(): 27 self.l1 = L.Linear(n_in, n_unit, initialW=w) 28 self.l2 = L.Linear(n_unit, n_unit, initialW=w) 29 self.l3 = L.Linear(n_unit, n_unit, initialW=w) 30 self.l4 = L.Linear(n_unit, n_unit, initialW=w) 31 self.l5 = L.Linear(n_unit, n_out, initialW=w) 32 33 if self.use_bn: 34 self.bn1 = L.BatchNormalization(n_unit) 35 self.bn2 = L.BatchNormalization(n_unit) 36 self.bn3 = L.BatchNormalization(n_unit) 37 38def __call__(self, x): 39 if self.use_bn: 40 h1 = self.activate_func(self.bn1(self.l1(x))) 41 h2 = self.activate_func(self.bn2(self.l2(h1))) 42 h3 = self.activate_func(self.bn3(self.l3(h2)) + h1) 43 else: 44 h1 = self.activate_func(self.l1(x)) 45 h2 = self.activate_func(self.l2(h1)) 46 h3 = self.activate_func(self.l3(h2)) 47 h4 = self.activate_func(self.l4(h3) + h1) 48 return self.l5(h4)
補足情報(FW/ツールのバージョンなど)
修正前後ともn_in, n_unit, n_outの値は同じになっています.
ログを見る限り間違いなさそうです.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。