如何安装plaidML / plaidML-keras

时间:2019-07-10 14:34:39

标签: python macos tensorflow keras gpu

因此,我正在尝试安装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".

从对错误消息的有限了解来看,这是说我丢失了一个conifuration文件,但是我不知道将其放置在何处或放置在其中的内容。我猜想这与说明中的以下(含糊)行有关。

  

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

但是我如何指定我希望它使用radeon pro 560x。另外,我确实进行了检查,并且我的mac与openCL 1.2兼容(对于plaidML是必需的)

5 个答案:

答案 0 :(得分:1)

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

格子ml

的可能路径
  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

答案 1 :(得分:0)

免责声明:我是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复制到您的格子share目录中。

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

答案 2 :(得分:0)

我正面临着同样的问题,在线回答不是很有帮助。在这种情况下,我建议您自己调试。

因为这是问题所在,

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,或者尝试添加.作为搜索路径,以便用户更容易获得一些线索? / p>

答案 3 :(得分:0)

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

文件plaidml/settings.py使用变量sys.prefix,该变量对我的系统而言有错误的值:它包含/usr而不是~/.local,因此它尝试加载{{1 }},而不是/usr/share/plaidml/experimental.json 我还不知道如何确定~/.local/share/plaidml/experimental.json的值,以及plaidml是否能够找到它的sys.prefix文件...

答案 4 :(得分:0)

在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。