Binary neural network training

you can extend the dimension of w so that the dot product returns a (n, k) matrix where k=10:

with basic_model:
    w = pm.Bernoulli('w', p=0.5, shape=(25, 10))
    p = tt.nnet.softmax(tt.dot(x, w))

There is a similar example here: Multinomial with Random Effects on panel data (shape issues)