Como definir “MKL_THREADING_LAYER = GNU” como uma variável de ambiente para um script python?

3

Quando executo um script py , há um erro como este

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

Eu pesquisei por que e no terminal tentei

export MKL_THREADING_LAYER=GNU

e execute novamente, mas o problema ainda existe. Eu queria verificar se a variável de ambiente existe ou não, então eu tentei

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

Isso significa que eu não entendo o ambiente ou o quê?

De volta ao código do bug original, o problema é este:

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

É assim que o código da biblioteca é projetado:

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.
""")

Como posso definir essa variável de ambiente e fazer o código original funcionar?

    
por Jieneng Chen 09.11.2017 / 04:16

4 respostas

7

eu usei

conda install mkl=2017

e funcionou!

    
por Lukas 07.01.2018 / 16:35
2

Adicione esta linha ao seu arquivo ~/.bashrc

export MKL_THREADING_LAYER=GNU

então reabra seu terminal, ele funcionará

    
por owsmmj 09.03.2018 / 17:06
0

Eu tive o mesmo erro e resolvi-o simplesmente digitando e executando esses comandos um a um no terminal.

conda install theano
conda install keras

Acho que o erro significa que não houve theano instalado, de qualquer forma, funcionou.

    
por Swishderzy 21.12.2017 / 00:23
0

Para usar o MKL 2018 com o Theano, você DEVE definir "MKL_THREADING_LAYER=GNU" em seu ambiente. Este comando resolveria seu problema

conda install mkl=2018
    
por shad mohammad 29.05.2018 / 12:46