How to build the MMSB model with pymc3?

Thanks so much for your reply.

In the model, z follows a categorical distribution. But the following code still does not work.
(For your convenience, you can download the codes here:etection.py (2.0 KB))

with pm.Model() as model:   
 
    myBeta = np.eye(N)*0.8
    myBeta = myBeta + np.ones([N,N])*0.2-np.eye(N)*0.2   
    
    pi = pm.Dirichlet('pi', a=alpha*np.ones(K),shape=[N,K])    
   
    z = np.empty([N,N], dtype=object)    
    for node1 in range(N):        
            z[node1] = pm.Categorical('z_%d' % node1, p=pi[node1],shape=N)    
        
    pD = tt.switch(tt.eq(z, z.T), myBeta[z], eps)
    y = pm.Bernoulli('D', p=pD, observed=Topology_Data) 

The error messages are as follows:

> c:\users\twp\downloads\ection.py(64)<module>()    
3--> 64     pD = tt.switch(tt.eq(z, z.T), 
ipdb> myBeta[z], eps)
     65     y = pm.Bernoulli('D', p=pD, observed=Topology_Data)

theano.tensor.var.AsTensorError: ('Cannot convert [[z_0 z_0 z_0 z_0 z_0]\n [z_1 z_1 z_1 z_1 z_1]\n [z_2 z_2 z_2 z_2 z_2]\n [z_3 z_3 z_3 z_3 z_3]\n [z_4 z_4 z_4 z_4 z_4]] to TensorType', <class 'numpy.ndarray'>)