【问题标题】:How to install plaidML / plaidML-keras如何安装 plaidML / plaidML-keras
【发布时间】:2019-11-20 05:14:31
【问题描述】:

所以我正在尝试安装 plaidML-keras,以便我可以在我的 MacBookPro 的 gpu (radeon pro 560x) 上进行张量流处理。根据我的研究,可以使用 plaidML-Keras (instalation instrutions) 来完成。当我运行pip install -U plaidml-keras 时,它工作正常,但下一步,plaidml-setup 返回以下错误。

Traceback (most recent call last):
  File "/usr/local/bin/plaidml-setup", line 6, in <module>
    from plaidml.plaidml_setup import main
  File "/usr/local/lib/python3.7/site-packages/plaidml/__init__.py", line 50, in <module>
    import plaidml.settings
  File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 33, in <module>
    _setup_config('PLAIDML_EXPERIMENTAL_CONFIG', 'experimental.json')
  File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 30, in _setup_config
    'Could not find PlaidML configuration file: "{}".'.format(filename))
plaidml.exceptions.PlaidMLError: Could not find PlaidML configuration file: "experimental.json".

根据我对错误消息的有限理解,它是说我缺少一个配置文件,但我不知道该放在哪里,也不知道该放什么。我猜这与说明中的以下(模糊)行有关。

最后,设置 PlaidML 以使用首选的计算设备

但是我如何指定我希望它使用 radeon pro 560x。另外,我做了检查,我的 mac 与 openCL 1.2 兼容(plaidML 需要)

【问题讨论】:

  • 死链接......!

标签: python macos tensorflow keras gpu


【解决方案1】:

免责声明:我是 PlaidML 团队的一员,我们正在积极努力改进设置体验和相关文档。我们很抱歉你被困在这个问题上。现在,这里有一些说明可以让您重回正轨。

  1. 找出 plaidml-setup 的安装位置。通常,这是/usr/local/bin 的一些变体或虚拟环境的路径。此路径的前缀(即/usr/local)对于下一步非常重要。
  2. 找到 plaidml share 目录。它与 plaidml-setup 在同一个前缀内,即/usr/local/share/plaidml
  3. 在 plaidml share 目录中,应该有一些文件:至少,config.jsonexperimental.json 应该在其中。如果它们不在其中,您可以将 the files here 复制到您的 plaidml share 目录中。

复制完这些 json 文件后,您应该可以毫无问题地运行 plaidml-setup

【讨论】:

  • 所以我做了所有这些,当我运行plaidml-setup时它仍然给我同样的错误@
  • 我在共享目录里有相同前缀的,还是不行。我通过 conda 创建了一个环境。
【解决方案2】:

我也面临同样的问题,网上的答案不是很有帮助。在这种情况下,我建议自己调试。

因为这是问题所在:

File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 30, in _setup_config
'Could not find PlaidML configuration file: "{}".'.format(filename))

您可以vim /usr/local/lib/python3.7/site-packages/plaidml/settings.py,并阅读代码。基本上它是在尝试使用函数_find_config 来获取配置文件。

cfg_path = os.path.join(prefix, 'share', 'plaidml', name) 之后,我添加了print(cfg_path) 以查看它在寻找什么路径。我得到了:

/usr/local/Caskroom/miniconda/base/share/plaidml/experimental.json
/usr/local/Caskroom/miniconda/base/share/plaidml/config.json

这就是为什么很难告诉您将文件放在哪里的原因:这取决于您的系统设置。不是每个人都像我一样使用caskconda,所以我认为它在您的操作系统中应该有所不同。

@Denise Kutnick:感谢您的辛勤工作,可能有问题时打印cfg_path,或者尝试添加.作为搜索路径,以便用户更容易获得一些线索?

【讨论】:

    【解决方案3】:

    正如我在这里写的:https://superuser.com/questions/1404114/traceback-error-during-plaidml-installation/1488059#1488059

    文件plaidml/settings.py 使用变量sys.prefix,由于某种原因,它对我的​​系统有错误的值:它包含/usr 而不是~/.local,因此它尝试加载/usr/share/plaidml/experimental.json 而不是~/.local/share/plaidml/experimental.json 我还不知道如何修复sys.prefix 的值以及plaidml 是否能够找到它的so 文件...

    【讨论】:

      【解决方案4】:

      您需要在环境中正确设置plaidmllibplaidml.dylib路径。

      plaidml

      的可能路径
      1. /Library/Frameworks/Python.framework/Versions/3.7/share/plaidml
      2. /usr/local/share/plaidml
      3. 其他一些位置。搜索它。

      libplaidml.dylib

      的可能路径
      1. /Library/Frameworks/Python.framework/Versions/3.7/lib/libplaidml.dylib
      2. /usr/local/lib/libplaidml.dylib
      3. 其他一些位置。搜索它。

      示例:在您的代码集环境变量中:

      import os
      os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
      os.environ["RUNFILES_DIR"] = "/Library/Frameworks/Python.framework/Versions/3.7/share/plaidml"
      os.environ["PLAIDML_NATIVE_PATH"] = "/Library/Frameworks/Python.framework/Versions/3.7/lib/libplaidml.dylib"
      

      有关设置 opencl 和 plaidml 的完整步骤。见this

      注意:这是针对 macOS/Linux 的

      【讨论】:

        【解决方案5】:

        在 plaidml 共享目录中,应该有几个文件:至少 config.json 和 experimental.json

        usr/local/lib/python3.8/site-packages/plaidml

        ++

        执行以下操作:

        导出 PLAIDML_NATIVE_PATH=/usr/local/lib/libplaidml.dylib 导出 RUNFILES_DIR=/usr/local/share/plaidml。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 1970-01-01
          • 1970-01-01
          • 2021-12-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多