発生している問題・エラーメッセージ
chainerで回帰を実装している最中に以下のエラーが発生してしまいました。
ソースコード
python
1import chainer 2import chainer.functions as F 3import chainer.links as L 4import numpy as np 5 6from chainer import optimizers 7 8class MLP(chainer.Chain): 9 10 def __init__(self): 11 super().__init__() 12 with self.init_scope(): 13 self.c1 = L.Convolution2D(None, 16, 3, pad=1) 14 self.b1 = L.BatchNormalization(16) 15 self.f1 = L.Linear(None, 64) 16 17 def __call__(self, x, t): 18 y = self.predictor(x) 19 self.loss = F.huber_loss(y, t, 1.0) 20 return self.loss 21 22 def predictor(self, x): 23 x = F.relu(self.b1(self.c1(x))) 24 x = self.f1(x) 25 return x 26 27 28 29x = np.arange(2 * 5 * 8 * 8).reshape(2, 5, 8, 8).astype("f") 30t = np.arange(2 * 64).reshape(2, 64).astype("f") 31 32model = MLP() 33 34optimizer = optimizers.Adam() 35optimizer.setup(model) 36 37optimizer.update(model, x, t)
エラーメッセージ
Traceback (most recent call last): File "c:/Users/ubdc2/Desktop/reversi_rl/reversi_main.py", line 643, in <module> optimizer.update(model, x, t) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\optimizer.py", line 685, in update loss.backward(loss_scale=self._loss_scale) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\variable.py", line 963, in backward self._backward_main(retain_grad, loss_scale) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\variable.py", line 1040, in _backward_main func, target_input_indexes, out_grad, in_grad) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\_backprop_utils.py", line 106, in backprop_step target_input_indexes, grad_outputs) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\functions\loss\huber_loss.py", line 57, in backward gy = chainer.functions.expand_dims(gy, 1) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\functions\array\expand_dims.py", line 73, in expand_dims y, = ExpandDims(axis).apply((x,)) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\function_node.py", line 245, in apply self._check_data_type_forward(in_data) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\function_node.py", line 322, in _check_data_type_forward self.check_type_forward(in_type) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\chainer\functions\array\expand_dims.py", line 18, in check_type_forward type_check.expect(x_type.ndim >= self.axis) AttributeError: 'NoneType' object has no attribute 'ndim'
解決策を探しています。
よろしくお願いいたします。
あなたの回答
tips
プレビュー