The error is because your encoder hidden states are a tuples. Ex:
 encoder_h_1 = (Variable(torch.zeros(data.size(0), 256, 8, 8).cuda()),
                       Variable(torch.zeros(data.size(0), 256, 8, 8).cuda()))

you cannot pass this into your conv2d layers. I am not sure exactly what you want but I would just delete one of the two variables or add another conv2d that is a cell conv2d for the second variable.