Функция для выполнения 1-D свертки в theano как np.convolve? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь сделать 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)
...