Can anyone tell me how to hybridize Conv2dLSTM cell?
My code is as follows:
class Net(gluon.HybridBlock):
def __init__(self, **kwargs):
super(Net, self).__init__(**kwargs)
with self.name_scope():
self.cnn0 = mx.gluon.contrib.rnn.Conv2DLSTMCell(input_shape=(n_input, rows, columns),hidden_channels=n_input, activation='relu',i2h_kernel=(3,3),i2h_pad=(1,1), h2h_kernel=(3,3))
def hybrid_forward(self, F, x):
if k==1:
init_state =self.cnn0.begin_state(batch_size=batch_size)
state = init_state
k==0
x,state= self.cnn0(x,state)
It works perfectly well before hybridize() is executed. however, later I get this error:
Epoch 1. Loss: 0.0454747959 Test MAE: ([‘mae’, ‘mse’, ‘rmse’], [0.13146833710226358, 0.04243638356417125, 0.20268271084314857]) time:35.75 s
Traceback (most recent call last):
File “Practice2.py”, line 265, in
test=evaluate_accuracy(net, test_iter)
File “Practice2.py”, line 179, in evaluate_accuracy
preds=model(data)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 540, in call
out = self.forward(*args)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 907, in forward
return self._call_cached_op(x, *args)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 797, in _call_cached_op
self._build_cache(*args)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 749, in _build_cache
data, out = self._get_graph(*args)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 741, in _get_graph
out = self.hybrid_forward(symbol, *grouped_inputs, **params) # pylint: disable=no-value-for-parameter
File “Practice2.py”, line 203, in hybrid_forward
x,state= self.cnn0(x,state)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 540, in call
out = self.forward(*args)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/rnn/rnn_cell.py”, line 295, in forward
return super(RecurrentCell, self).forward(inputs, states)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/block.py”, line 924, in forward
return self.hybrid_forward(symbol, x, *args, **params)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/contrib/rnn/conv_rnn_cell.py”, line 457, in hybrid_forward
prefix)
File “/home/test/anaconda3/lib/python3.7/site-packages/mxnet/gluon/contrib/rnn/conv_rnn_cell.py”, line 167, in _conv_forward
name=prefix+‘h2h’)
File “”, line 133, in Convolution
AssertionError: Argument data must be Symbol instances, but got
[[[[0…]]]]
<NDArray 3x3x92x91 @gpu(0)>
Please help me.
Thank you.