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.

Reply via email to