Cet article est une erreur d'échec de la compilation qui s'est produite lors de la réécriture de la syntaxe de PyMC2 utilisée dans l'inférence Bayes expérimentée avec Python dans PyMC3. sur, Je n'ai pas trouvé grand-chose qui correspondait à mon symptôme, je vais donc le partager ici.
Une réécriture du code d'inférence bayésien expérimenté en Python dans PyMC3 est disponible sur Github.
Chapitre 1 réécrit dans PyMC3 À? "
Il n'y a aucun problème d'exécution ici.
import pymc3 as pm
import theano.tensor as tt
with pm.Model() as model:
alpha = 1.0/count_data.mean() # Recall count_data is the
# variable that holds our txt counts
lambda_1 = pm.Exponential("lambda_1", alpha)
lambda_2 = pm.Exponential("lambda_2", alpha)
tau = pm.DiscreteUniform("tau", lower=0, upper=n_count_data - 1)
L'erreur suivante s'est produite dans cette partie suivante.
with model:
idx = np.arange(n_count_data) # Index
lambda_ = pm.math.switch(tau > idx, lambda_1, lambda_2)
contenu de l'erreur
Exception: ('Compilation failed (return status=1): C:\\Users\\user\\AppData\\Local\\Temp\\ccq4MDSW.s: Assembler messages:\r. C:\\Users\\user\\AppData\\Local\\Temp\\ccq4MDSW.s:270: Error: invalid register for .seh_savexmm\r. ', '[Elemwise{gt,no_inplace}(<TensorType(int64, (True,))>, TensorConstant{[ 0 1 2 ..71\n 72 73]})]')
Installer MinGW-w64 et définir les variables d'environnement (Voir ici)
Recréer un nouvel environnement virtuel
Terminal
conda create -n env_name
conda install numpy
conda install scipy
conda install cython
pip install git+https://github.com/theano/theano
pip install git+https://github.com/pymc-devs/pymc3
conda install jupyter
J'ai installé theano et PyMC3 avec conda une fois, mais dans ce cas, j'ai eu exactement la même erreur et je n'ai pas pu la résoudre. Cependant, mélanger pip et conda n'est pas très bon en fonctionnement, j'ai donc pensé qu'il serait préférable de créer un environnement indépendant. Je vais.
--Run à nouveau
import pymc3 as pm
import theano.tensor as tt
with pm.Model() as model:
alpha = 1.0/count_data.mean() # Recall count_data is the
# variable that holds our txt counts
lambda_1 = pm.Exponential("lambda_1", alpha)
lambda_2 = pm.Exponential("lambda_2", alpha)
tau = pm.DiscreteUniform("tau", lower=0, upper=n_count_data - 1)
with model:
idx = np.arange(n_count_data) # Index
lambda_ = pm.math.switch(tau > idx, lambda_1, lambda_2)
Alors j'ai réussi. Après cela, j'ai également ajouté matplotlib et seaborn avec conda, mais il n'y a pas de problème pour l'instant.
Si quelqu'un a les mêmes symptômes, j'espère que cela aidera ...