web-dev-qa-db-fra.com

Comment définir "MKL_THREADING_LAYER = GNU" en tant que variable d'environnement pour un script python?

Lorsque j'exécute un script py, une erreur de ce type se produit.

RuntimeError: To use MKL 2018 with Theano you MUST set "MKL_THREADING_LAYER=GNU"
              in your environement.

Je googlé pourquoi et dans le terminal essayé

export MKL_THREADING_LAYER=GNU

et exécutez à nouveau, mais le problème existe toujours. Je voulais vérifier si la variable d'environnement existe ou non, alors j'ai essayé

$ env MKL_THREADING_LAYER=GNU
env: ‘MKL_THREADING_LAYER’: No such file or directory

Est-ce que cela signifie que je ne comprends pas l'environnement ou quoi?

Retour au code du bogue d'origine, le problème est le suivant:

File "/home/chen/anaconda2/envs/rllab3/lib/python3.5/site-packages/theano/configdefaults.py", line 1251, in check_mkl_openmp

Voici comment est conçu le code de la bibliothèque:

def check_mkl_openmp():
if not theano.config.blas.check_openmp:
    return
import os
if ('MKL_THREADING_LAYER' in os.environ and
        os.environ['MKL_THREADING_LAYER'] == 'GNU'):
    return
try:
    import mkl
    if '2018' in mkl.get_version_string():
        raise RuntimeError('To use MKL 2018 with Theano you MUST set "MKL_THREADING_LAYER=GNU" in your environement.')
except ImportError:
    raise RuntimeError(""" Could not import 'mkl'.  Either install mkl-service with conda or set MKL_THREADING_LAYER=GNU in your environment for MKL 2018.
If you have MKL 2017 install and are not in a conda environment you can set the Theano flag blas.check_openmp to False.  Be warned that if you set this flag and don't set the appropriate environment or make sure you have the right version you *will* get wrong results.
""")

Comment définir cette variable d'environnement et faire fonctionner le code d'origine?

3
Jieneng Chen

J'ai utilisé

conda install mkl=2017

et ça a fonctionné!

7
Lukas

Ajoutez cette ligne à votre fichier ~/.bashrc

export MKL_THREADING_LAYER=GNU

puis rouvrez votre terminal, cela fonctionnera

2
owsmmj

J'ai eu la même erreur et je l'ai simplement résolue en tapant et en exécutant ces commandes une par une sur le terminal.

conda install theano
conda install keras

Je pense que l'erreur a signifié qu'il n'y avait pas de theano installé, de toute façon, cela a fonctionné.

0
Swishderzy

Pour utiliser MKL 2018 avec Theano, vous DEVEZ définir "MKL_THREADING_LAYER=GNU" dans votre environnement. Cette commande résoudrait votre problème

conda install mkl=2018
0
shad mohammad