1D Convolutions in pm.Model

You are using border_mode="valid". Checking the docstring for conv2d:

    ``'valid'``: apply filter wherever it completely overlaps with the
        input. Generates output of shape: input shape - filter shape + 1

So you end up dropping a number of observations equal to the width of your kernel. If you check the shape error, you see that 1499 - 1483 = 16, which is one less than the kernel width of 17, as promised.

Since your model cannot produce estimates for the first 16 datapoints (they are consumed to make the prediction for the 17th), you need to drop these from your observed data. Alternatively, you could pad your data with a length 16 initial state vector, whose values you would need to estimate.

Your final choice is to fiddle with the handling of the boundaries. This gist might be helpful if you choose to go that route.