Probability estimation in pymc3

This is not necessary - you can divide the training set and testing set just like you usually do in Keras or scikit-learn. Just make sure that in the model block you dont specify the row shape.

For example, say you have a training set with shape (500, 10) and a testing set with shape (100, 10), in the model block, random variable should only have the column size specified (for example (10, 1)), in that case you when you are doing .set_value to predict the testing set it will work without matching the shape of the training set.