Я пытаюсь сделать 1-D свертку в theano, которая похожа на функцию numpy.convolve link , так как я должен использовать ее внутри pymc3 с функцией.
Я пытался реализовать последний пример, найденный здесь ссылка , но у него есть несколько проблем. Во-первых,
conv2d = T.signal.conv.conv2d
больше не поддерживается, но
from theano.tensor.nnet import conv
conv2d = conv.conv2d
работает. Во-вторых, veclen = x.shape [1] выдает ошибку, связанную с тестовыми значениями theano
ValueError: Cannot compute test value: input 0 (<TensorType(float64, matrix)>) of Op Shape(<TensorType(float64, matrix)>) missing default value.
Я также рассмотрел приведенный здесь пример ссылка , но я не совсем уверен, какприменить это к моей проблеме.
Наконец, здесь есть реализация Lasagne ссылка . У меня та же проблема, что и в приведенной выше ссылке - выяснить, как работает синтаксис для лазаньи.
Вот моя полная попытка с первым методом:
import theano
import theano.tensor as tt
from theano.tensor.nnet import conv
conv2d = conv.conv2d
x = tt.dmatrix()
y = tt.dmatrix()
veclen = x.shape[1]
conv1d_expr = conv2d(x, y, image_shape=(1, veclen), border_mode='full')
conv1d = theano.function([x, y], outputs=conv1d_expr)