Hi @junpenglao,
It’s Charles again. I am hitting a problem with sample_ppc that hierarchical multinomial/categorical model we were talking about yesterday.
I followed your suggestions:
#set in shared variables for prediction and testing later
input_var = theano.shared(model_data.values)
target_var = theano.shared(all_data['idx'].values)
masked_idx = theano.shared(asarray(labels))
#Test the model
input_var.set_value(test_input.values)
masked_idx.set_value(test_input['label'].values)
n_test = test_input.values.shape[0]
#have to put target_var that has same length as test_input
#just fake values because this is what I want to predict
target_var.set_value(ones(n_test).astype('int32'))
ppc = pm.sample_ppc(trace, model=multinomial_model)
I get this error:
ppc = pm.sample_ppc(trace, model=multinomial_model)
0%| | 0/2000 [00:00<?, ?it/s]
Traceback (most recent call last):
File "<ipython-input-77-a52e52683e3c>", line 1, in <module>
ppc = pm.sample_ppc(trace, model=multinomial_model)
File "/home/ccrawfor/anaconda3/lib/python3.6/site-packages/pymc3/sampling.py", line 572, in sample_ppc
size=size))
File "/home/ccrawfor/anaconda3/lib/python3.6/site-packages/pymc3/distributions/discrete.py", line 520, in random
size=size)
File "/home/ccrawfor/anaconda3/lib/python3.6/site-packages/pymc3/distributions/distribution.py", line 403, in generate_samples
samples = generator(size=1, *args, **kwargs)
File "/home/ccrawfor/anaconda3/lib/python3.6/site-packages/pymc3/distributions/discrete.py", line 510, in random_choice
for p in kwargs['p']]
File "/home/ccrawfor/anaconda3/lib/python3.6/site-packages/pymc3/distributions/discrete.py", line 510, in <listcomp>
for p in kwargs['p']]
File "mtrand.pyx", line 1137, in mtrand.RandomState.choice
ValueError: a and p must have same size
I’ve looked through the pymc3 files to try and figure out what “a” is, but I can’t find it. I guess it is some thing in that mtrand.pyx file that is being held over? I don’t wanna jack anything up and delete the .pyx file, but is that the thing to do?
Thanks so much for your help.
-C