Hi guys, I'm trying to use theano bilinear_upsampling function to write a
custom layer for Keras.
I just failed to make a simple function with it.
Below is my example showing this failure:
import theano.tensor as T
from theano import function
from theano.tensor.nnet.abstract_conv import bilinear_upsampling
x = T.tensor4('x')
y = bilinear_upsampling(x, 2)
I get the following error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/nnet/abstract_conv.py",
line 569, in bilinear_upsampling
row * ratio, col * ratio))
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/var.py",
line 327, in reshape
return theano.tensor.basic.reshape(self, shape, ndim=ndim)
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/basic.py",
line 4526, in reshape
newshape = as_tensor_variable(newshape)
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/basic.py",
line 208, in as_tensor_variable
raise AsTensorError("Cannot convert %s to TensorType" % str_x, type(x))
theano.tensor.var.AsTensorError: ('Cannot convert (None, None,
Elemwise{mul,no_inplace}.0, Elemwise{mul,no_inplace}.0) to TensorType',
<type 'tuple'>)
I thought the problem was because I didn't specify batch_size and
num_input_channels of the bilinear_upsampling function, so I tested the
following code:
import theano.tensor as T
from theano import function
from theano.tensor.nnet.abstract_conv import bilinear_upsampling
x = T.tensor4('x')
y = bilinear_upsampling(x, 2, batch_size=x.shape[0],
num_input_channels=x.shape[1])
I got a different error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/nnet/abstract_conv.py",
line 542, in bilinear_upsampling
filter_flip=True)
File
"/home/dikai/bin/anaconda2/lib/python2.7/site-packages/theano/tensor/nnet/abstract_conv.py",
line 241, in conv2d_grad_wrt_inputs
integer_types, type(None)))
AssertionError
I also checked the source code that raised this error:
# checking the type of input_shape
for dim in [0, 1]:
assert isinstance(input_shape[dim], (theano.tensor.TensorConstant,
integer_types, type(None)))
I don't know if this is a bug or not. Or can anyone provide a working
example that upsamples a 4D tensor using this function (assuming actual
shape of x is known only at runtime)?
--
---
You received this message because you are subscribed to the Google Groups
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.