Theano не узнает новые компиляторы Anaconda - PullRequest
1 голос
/ 09 октября 2019

У меня есть виртуальная среда conda, основанная на следующем yaml:

channels:
  - conda-forge

dependencies:
  - gcc_linux-64
  - gxx_linux-64
  - gfortran_linux-64
  - theano

Это упрощенный пример, в действительности YAML имеет гораздо больше пакетов.
Подробно, программное обеспечениеустановлен в base среде внутри docker контейнера, однако я не верю, что моя проблема вообще связана с контейнерами. Важная часть файла Docker приведена ниже:

# BASE IMAGE
FROM ubuntu:18.04

# PATH EXPORT
ENV PATH="/root/miniconda3/bin:${PATH}"
ARG PATH="/root/miniconda3/bin:${PATH}"

# UPDATE THE PACKAGE LIST
RUN apt-get update

# INSTALL WGET
RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*

# INSTALL MINICONDA WITH PYTHON 3.7
RUN wget --no-verbose \
    https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-latest-Linux-x86_64.sh -b \
    && rm -f Miniconda3-latest-Linux-x86_64.sh

# UPDATE CONDA
RUN conda update --name base --channel defaults conda

# COPY THE YAML & INSTALL SOFTWARE WITH CONDA
COPY conda_packages.yaml .
RUN conda env update --name base --file conda_packages.yaml

Контейнер построен правильно, и после этого я могу запускать новые компиляторы Anaconda с помощью команд: x86_64-conda_cos6-linux-gnu-gcc или x86_64-conda_cos6-linux-gnu-c++. Однако, когда я запускаю тестовый сценарий Python, который выполняет import theano, я получаю сообщение об ошибке:

/root/miniconda3/lib/python3.7/site-packages/theano/configdefaults.py:560: UserWarning:

DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory

WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
WARNING (theano.configdefaults): install mkl with `conda install mkl-service`: No module named 'mkl'
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

Когда я позже проверяю журналы сборки, установленная версия aano: 1.0.4
Версии компиляторовявляются: 7.3.0

...