【问题标题】:Difference between installation libraries of Tensorflow GPU vs CPUTensorflow GPU 与 CPU 安装库的区别
【发布时间】:2019-03-08 13:06:33
【问题描述】:

最近,我想将我的 Python 库移动到 pendrive 中,以便在我的工作站和笔记本电脑之间切换时保持所有库不变。 (另外,如果我更新一个,它也会更新到另一个。)

为此,我在我的 pendrive 上安装了一个 tensorflow-gpu 版本(我的笔记本电脑没有 GPU)。在 PC(它可以毫无问题地检测并使用我的 GPU)和笔记本电脑(它会自动使用我的 CPU)上,一切正常。

这就是我的问题所在。和有什么区别

tensorflow-gpu 

而且只是

tensorflow

? (因为在没有找到GPU的时候,tensorflow-gpu会自动使用CPU版本。)

区别仅在于 GPU 支持吗?那为什么还有非 GPU 版本的 tensorflow?

另外,这样进行可以吗?或者我应该创建虚拟环境来分别安装 CPU 和 GPU?

我能找到的最接近的答案是 How to develop for tensor flow with gpu without a gpu.

但它只是指定在CPU平台上使用tensorflow-gpu是完全可以的,但它仍然没有回答我的第一个问题。此外,随着 tensorflow 不断发布新的更新,答案可能已经过时。

我使用 GTX 1070 在我的工作站上安装了 tensorflow-gpu 版本(因此安装成功)。

我也理解不同之处在于pip install tensorflow-gpu 需要安装启用 CUDA 的设备,但我的问题更多是关于库的使用,因为在我的笔记本电脑上使用tensorflow-gpu 版本时我没有遇到任何问题(没有 GPU)并且我的所有脚本都运行没有任何错误。

(还从上面删除了 pip install 以避免混淆)

另外,在没有 GPU 的系统上运行 tensorflow-gpu 与设置 CUDA_VISIBLE_DEVICES=-1 不同吗?

【问题讨论】:

  • tensorflow-gpu 依赖于 CUDA,并且(至少直到最近的版本,我相信它没有改变)尝试在没有安装 CUDA 的情况下导入它(即正确版本的 CUDA 和 CUDNN)将失败。 tensorflow-cpu 正确安装后将始终有效。
  • 在没有 CUDA 的情况下导入 tensorflow-gpu 不会产生错误,而且效果很好。我现在又检查了一遍以确定。编辑:我还检查了 tensorflow 版本,它是 tensorflow-gpu 而不是 cpu 版本。
  • 你是如何安装tensorflow-gpu的?如果你有this distribution(例如conda install -c anaconda tensorflow-gpu),我认为它会为你在环境中捆绑CUDA/CUDNN(我认为这不是标准pip能够做的事情......而且,它仍然是使其显着更大且加载速度更慢)。
  • 我将它安装在我的工作站上(因此安装成功),然后在我的笔记本电脑上使用它。为了澄清,我也会在问题中提到它。

标签: python tensorflow


【解决方案1】:

只是一个快速(不必要的?)注意...从 TensorFlow2.0 开始,这些没有分开,您只需安装 tensorflow(因为如果您安装了适当的卡/CUDA,这包括 GPU 支持)。

【讨论】:

  • @Ironkey 我认为值得回答的唯一原因是 OP 的问题很可能有点过时了,因为现在安装不再有任何差异(因为现在只有一个版本当前流)。我很感激这已经两年了,但是网上有很多关于 TensorFlow-GPU 的参考
  • 从 tensorflow==1.15.0 开始,除了 tensorflow==2.0.0。 tensorflow==2.0.0 不支持 GPU。 tensorflow==1.15.0 可以。
【解决方案2】:

需要注意的一点:即使您的系统中没有 GPU,也可以安装 CUDA。

对于 tensorflowtensorflow-gpu 包,我希望这能消除混淆。 yes/no 的意思是“执行时包是否可以开箱即用 import tensorflow as tf”?以下是区别:

| Support for TensorFlow libraries | tensorflow | tensorflow-gpu  |
| for hardware type:               |    tf      |     tf-gpu      |
|----------------------------------|------------|-----------------|
| cpu-only                         |    yes     |   no (~tf-like) |
| gpu with cuda+cudnn installed    |    yes     |   yes           |
| gpu without cuda+cudnn installed |    yes     |   no (~tf-like) |

编辑:确认cpu-only 系统和gpu without cuda+cudnn installed 上的no 答案(通过删除CUDA+CuDNN 环境变量)。

~tf-like 表示即使库是 tensorflow-gpu,它的行为也会像 tensorflow 库。

【讨论】:

  • 我能得到这个的来源吗?因为我的情况似乎与信息相矛盾,因为我可以在带有 cpu(没有 gpu)的系统上运行 tensorflow-gpu
  • 您要测试的tensorflow-gpu 版本是什么?我在 1.4.0 和最新版本上测试了 tensorflow-gpu,两者都在 cpu-only 上。正如预期的那样,它们都没有工作。
  • @RohanPooniwala 请执行 pip/pip3 冻结和 grep tensorflow。我认为您必须与多次安装有版本冲突。
  • @RohanPooniwala 所以这证实了我的回答。安装了 cuda+cudnn 的 GPU。如果没有找到它,它会跳过 gpu 并在 cpu 上恢复它。尝试运行“nvidia-smi”命令并检查笔记本电脑的 gpu 属性。以防万一。
  • 是的,安装了 CUDA+cudnn 且系统中没有实际 GPU 的 GPU 可以工作。如果您能更新您的答案并提及它,那就太好了!
【解决方案3】:

tensorflow-gpu 需要 cuda/cudnn。 tensorflow 没有。 pip 不会为您安装 cuda(conda 会),因此在大多数没有 nvidia gpu 的系统上,pip install tensorflow-gpu 无法开箱即用。

【讨论】:

  • 是的,我完全同意你的看法,但同样,pip install tensorflow-gpu 是在启用 CUDA 设备的系统上运行的(我的工作站使用 GTX1070)。然后导入 tensorflow 就成功了,我所有的脚本都在没有 CUDA 设备(我的笔记本电脑没有 GPU)的系统上运行没有问题。
  • @RohanPooniwala 我刚刚通过 pip 安装了 tensorflow-gpu,在导入 tensorflow 时出现错误。你碰巧有隐藏在某个地方的 cuda 蟒蛇吗?
  • 就像我在之前的评论中提到的那样,我将它安装在我的工作站上(因此安装成功),然后在我的笔记本电脑上使用它。
  • 抱歉,我误读了您之前的评论。我在工作站上时安装了所有东西。 Anaconda 也驻留在 pendrive 上,但 CUDA 安装仅在工作站上完成,并且 tensorflow-gpu 是使用 pip 而不是 conda 安装的。
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
相关资源
最近更新 更多