代码之家  ›  专栏  ›  技术社区  ›  John Allard

如何使用virtualenv安装软件包,但仍然使用系统tensorflow安装

  •  1
  • John Allard  · 技术社区  · 6 年前

    tensorflow
    keras
    h5py
    requests
    pillow
    tensorflow-hub
    

    我也试过了 --system-site-packages 标志,并表示tensorflow已经安装,但随后它停止使用GPU。

    假设我做了以下几件事

    $ virtualenv --sysem-site-packages venv/
    $ source venv/bin/activate
    $ pip install -r requirements.txt
    Collecting tensorflow (from -r requirements.txt (line 1))
      Using cached https://files.pythonhosted.org/packages/1a/c4/8cb95df0bf06089014259b25997c3921a87aa08e2cd981417d91ca92f7e9/tensorflow-1.10.1-cp27-cp27mu-manylinux1_x86_64.whl
    Requirement already satisfied: keras in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 2)) (2.2.2)
    Requirement already satisfied: h5py in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line 3)) (2.7.0)
    Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line 4)) (2.12.4)
    Requirement already satisfied: pillow in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line 5)) (4.0.0)
    Requirement already satisfied: tensorflow-hub in /home/john/.local/lib/python2.7/site-packages (from -r requirements.txt (line 6)) (0.1.1)
    Collecting numpy<=1.14.5,>=1.13.3 (from tensorflow->-r requirements.txt (line 1))
      Using cached https://files.pythonhosted.org/packages/6a/a9/c01a2d5f7b045f508c8cefef3b079fe8c413d05498ca0ae877cffa230564/numpy-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl
    Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (1.14.1)
    Requirement already satisfied: protobuf>=3.6.0 in /home/john/.local/lib/python2.7/site-packages (from tensorflow->-r requirements.txt (line 1)) (3.6.1)
    Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (1.1.0)
    Requirement already satisfied: backports.weakref>=1.0rc1 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (1.0.post1)
    Requirement already satisfied: absl-py>=0.1.6 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (0.3.0)
    Requirement already satisfied: wheel in ./venv/lib/python2.7/site-packages (from tensorflow->-r requirements.txt (line 1)) (0.31.1)
    Requirement already satisfied: tensorboard<1.11.0,>=1.10.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (1.10.0)
    Requirement already satisfied: six>=1.10.0 in /home/john/.local/lib/python2.7/site-packages (from tensorflow->-r requirements.txt (line 1)) (1.11.0)
    Requirement already satisfied: gast>=0.2.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (0.2.0)
    Requirement already satisfied: mock>=2.0.0 in /usr/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (2.0.0)
    Requirement already satisfied: enum34>=1.1.6 in /usr/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (1.1.6)
    Requirement already satisfied: astor>=0.6.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow->-r requirements.txt (line 1)) (0.7.1)
    Collecting setuptools<=39.1.0 (from tensorflow->-r requirements.txt (line 1))
      Using cached https://files.pythonhosted.org/packages/8c/10/79282747f9169f21c053c562a0baa21815a8c7879be97abd930dbcf862e8/setuptools-39.1.0-py2.py3-none-any.whl
    Requirement already satisfied: pyyaml in /usr/lib/python2.7/dist-packages (from keras->-r requirements.txt (line 2)) (3.12)
    Requirement already satisfied: scipy>=0.14 in /usr/lib/python2.7/dist-packages (from keras->-r requirements.txt (line 2)) (0.18.1)
    Requirement already satisfied: keras-applications==1.0.4 in /usr/local/lib/python2.7/dist-packages (from keras->-r requirements.txt (line 2)) (1.0.4)
    Requirement already satisfied: keras-preprocessing==1.0.2 in /usr/local/lib/python2.7/dist-packages (from keras->-r requirements.txt (line 2)) (1.0.2)
    Requirement already satisfied: futures>=2.2.0 in /usr/local/lib/python2.7/dist-packages (from grpcio>=1.8.6->tensorflow->-r requirements.txt (line 1)) (3.2.0)
    Requirement already satisfied: markdown>=2.6.8 in /usr/lib/python2.7/dist-packages (from tensorboard<1.11.0,>=1.10.0->tensorflow->-r requirements.txt (line 1)) (2.6.8)
    Requirement already satisfied: werkzeug>=0.11.10 in /usr/lib/python2.7/dist-packages (from tensorboard<1.11.0,>=1.10.0->tensorflow->-r requirements.txt (line 1)) (0.11.15)
    tensorflow-serving-api 1.10.0 has requirement protobuf==3.6.0, but you'll have protobuf 3.6.1 which is incompatible.
    Installing collected packages: numpy, setuptools, tensorflow
      Found existing installation: numpy 1.15.1
        Not uninstalling numpy at /home/john/.local/lib/python2.7/site-packages, outside environment /home/john/retrain/venv
        Can't uninstall 'numpy'. No files were found to uninstall.
      Found existing installation: setuptools 40.2.0
        Uninstalling setuptools-40.2.0:
          Successfully uninstalled setuptools-40.2.0
    Successfully installed numpy-1.14.5 setuptools-39.1.0 tensorflow-1.10.1
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   Viacheslav V Kovalevskyi    6 年前

    不幸的是,没有为CPU和GPU优化的tensorflow的“胖”二进制文件。不过,在这两种情况下都可以使用tensorflow gpu。

    在仅CPU实例上安装tensorflow gpu

    事实上,在没有gpu的情况下,可以在实例上使用tensoflow gpu二进制文件。为了使用它,您需要在实例上安装CUDA和CuDNN(即使实例没有nvidiagpu)。CUDA,inside有一个模拟(存根)Nvidia驱动程序,允许CUDA和CuDNN在CPU上工作,为了在linux上使用它,您需要运行以下命令:

    sudo ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/libcuda.so.1
    sudo ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/libcuda.so
    

    假设 /usr/local/cuda CUDA的安装路径(在不同平台上可能不同)。一旦这是一个真正可以安装和使用TensorFlowGPU上的CPU只有实例完成。

    我知道这看起来像一个黑客,甚至可能在某些平台上不起作用,但至少在某种程度上,它使使用相同的工具成为可能要求.txt甚至GPU和非GPU实例上的相同二进制文件。

        2
  •  2
  •   Corey Goldberg    6 年前

    在您的需求文件中,您有 tensorflow 列出的包,这是仅限CPU的包。要获得GPU支持,请安装 tensorflow-gpu 相反。