我应该如何安装keras-bert才能在R端正确使用?

2024-01-29

我正在尝试按照解释安装 keras-berthere https://blogs.rstudio.com/ai/posts/2019-09-30-bert-r/。虽然它已成功安装在环境 as 上,但我在 R 端看不到 keras-bert。

(bert_env) C:\Users\xxxxx\Dropbox\Rcode\ProjectBERT>pip list
Package                          Version
-------------------------------- ---------
certifi                          2022.6.15
keras                            2.6.0
keras-bert                       0.89.0
keras-embed-sim                  0.10.0
keras-layer-normalization        0.16.0
keras-multi-head                 0.29.0
keras-pos-embd                   0.13.0
keras-position-wise-feed-forward 0.8.0
keras-self-attention             0.51.0
keras-transformer                0.40.0
mkl-fft                          1.3.1
mkl-random                       1.2.2
mkl-service                      2.4.0
numpy                            1.23.1
pip                              22.1.2
setuptools                       61.2.0
six                              1.16.0
wheel                            0.37.1
wincertstore                     0.2

另一个证明 keras-bert 已成功安装在当前环境中的证明(bert_env):

(bert_env) C:\Users\xxxxx\Dropbox\Rcode\ProjectBERT>pip install keras-bert
Requirement already satisfied: keras-bert in c:\anaconda3\envs\bert_env\lib\site-packages (0.89.0)
Requirement already satisfied: keras-transformer==0.40.0 in c:\anaconda3\envs\bert_env\lib\site-packages (from keras-bert) (0.40.0)

但是,我无法正确调用 R 端的包,其中显示:

> reticulate::conda_list()
      name                                   python
1     base                 C:\\Anaconda3/python.exe
2 bert_env C:\\Anaconda3\\envs\\bert_env/python.exe
3     py27     C:\\Anaconda3\\envs\\py27/python.exe
> reticulate::use_condaenv("bert_env", required=TRUE)
> reticulate::py_config()
C:\ANACON~2\envs\bert_env\lib\site-packages\numpy\__init__.py:138: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL initialization ensuring its correct out-of-the box operation under condition when Gnu OpenMP had already been loaded by Python process is not assured. Please install mkl-service package, see http://github.com/IntelPython/mkl-service
  from . import _distributor_init
python:         C:/Anaconda3/envs/bert_env/python.exe
libpython:      C:/Anaconda3/envs/bert_env/python310.dll
pythonhome:     C:/Anaconda3/envs/bert_env
version:        3.10.4 | packaged by conda-forge | (main, Mar 30 2022, 08:38:02) [MSC v.1916 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:/Anaconda3/envs/bert_env/Lib/site-packages/numpy
numpy_version:  1.23.1

我几乎尝试了所有提供的解决方案,例如:

conda update conda
conda update --all

然后我创建了一个完全干净的新环境,以便在那里重新安装 keras-bert。还查看了 scipy 和 numpy 包冲突,在他们的 github 端提到了这一点。根本没有成功!

当然,一旦我检查可用性,它就会返回 false!

reticulate::py_module_available('keras_bert')
[1] FALSE

我知道这一点post https://stackoverflow.com/questions/62532838/how-to-install-keras-bert-packagesnotfounderror-the-following-packages-are-no并使用 YAML 应用完全相同的模式。也没有任何改进。非常感谢任何有关正确安装 keras-bert 或我应该如何解决该问题的建议。


经过几天的搜索,我找到了正确设置网状路径的方法。这个问题也解决了主要问题。.Renviron 文件是一个用户可控的文件,可用于创建环境变量。因此,.Renviron 文件可用于存储可从计算机中的所有 R 项目访问的信息。

首先,您需要找到您的位置.Renviron文件。为了找到你的道路.Renviron文件,您可以在 RStudio 控制台上键入:

usethis::edit_r_environ()

就我而言,它返回:

* Modify 'C:/Users/xxxxx/Documents/.Renviron'
* Restart R for changes to take effect

然后,您可以导航到以下位置:.Renviron手动归档。 (注意:当我在我的场景中打开它时,它是空的。)然后粘贴完整路径python.exe文件内为:

RETICULATE_PYTHON="YourEnvironmentPath/python.exe"

Tip:如果您不确定完整的 python 路径,您可以将其获取为:

reticulate::conda_python("keras_bert")

请不要忘记输入您的环境名称而不是我的环境名称 >keras_bert)。 然后我得到:

[1] "C:\\Anaconda3\\envs\\keras_bert/python.exe"

就我而言,我粘贴了:

RETICULATE_PYTHON="C:\\Anaconda3\\envs\\keras_bert/python.exe"

或者(在 Windows 上),您可以单击开始并打开Windows Powershell。然后将此代码复制到 powershell 中以处理相同的事情:

Add-Content C:\Users\xxxxx\Documents/.Renviron 'RETICULATE_PYTHON="C:\\Anaconda3\\envs\\keras_bert/python.exe"'

为了查看更新,您必须关闭并重新打开 RStudio 以获得干净的 RStudio 会话。现在,运行以下行来检查一切是否正常:

Sys.getenv('RETICULATE_PYTHON')

or:

reticulate::py_config()

就我而言,它返回:

[1] "C:/Anaconda3/envs/keras_bert/python.exe"

or:

python: C:/Anaconda3/envs/keras_bert/python.exe
libpython: C:/Anaconda3/envs/keras_bert/python38.dll
pythonhome:     C:/Anaconda3/envs/keras_bert
version:        3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 05:59:45) [MSC v.1929 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:/Anaconda3/envs/keras_bert/Lib/site-packages/numpy
numpy_version:  1.23.2

NOTE: Python version was forced by RETICULATE_PYTHON

简而言之,使用此解决方案,您无需关心是否在 R 会话开始时声明环境或任何其他混乱的场景。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该如何安装keras-bert才能在R端正确使用? 的相关文章

随机推荐

  • 从扩展更新 UIApplicationShortcutItem

    我正在为应用程序构建 Today Extension 它对于修改我的应用程序数据非常有用 但现在我的动态UIApplicationShortcutItems不同步 我无法访问UIApplication shared从我的分机 有没有办法要求
  • 如何使用 CSS 为多个图像设置不同的样式?

    我基本上是在设计一篇长文 其中散布着各种图像 我希望第一张图像 浮动 左 第二张图像 浮动 右 我知道我可以像这样设计图像 img float left 这使得每张图像都具有相同的风格 如何为每张图像设置不同的样式 我尝试将每个图像放在不同
  • 一个关于facebook评论插件的简单问题

    我正在努力解决一个非常简单的问题 Facebook 文档一如既往地没有给我足够的解释 我在我的网站上附加了一个 Facebook 评论插件 并使用 comment create 事件的回调 我可以获得刚刚创建的评论的信息 FB Event
  • jQuery 调用中的哈希符号

    作为一名务实的编码员 我往往会错过一些明显的事情 我想知道 有什么区别 loc loc 信息越多 关于 的来龙去脉就越好 loc is an 元素选择器 http api jquery com element selector 寻找
  • Flexjson 和 Dexguard/Proguard

    当涉及到 flexjson 库时 我在使用 dexguard 时遇到问题 尝试使用 JSONDeserializer 反序列化时 我不断收到以下错误 09 15 20 46 10 271 10901 11552 A art sart run
  • 如何在 iOS 图表中的 X 轴上添加字符串?

    在新版本中 我在创建一些图表时遇到了一些麻烦 以前的代码是 func setChart dataPoints String values Double var dataEntries BarChartDataEntry for i in 0
  • 从 sqlplus 调用存储过程

    如何从sqlplus调用存储过程 我有一个程序 Create or replace procedure testproc parameter1 in varachar2 parameter2 out varchar2 begin Do so
  • 如何将 mypy 与派生类和方法调用一起使用?

    我正在与 mypy 作斗争 不明白我想要传递一个派生类 其中代码接受基类或任何派生类的实例 并在该传递的实例上调用方法 My code from typing import Type import abc class Base abc AB
  • 当从另一个线程修改对象属性时引发 OnPropertyChanged

    所以我有这个对象 public class SomeObject INotifyPropertyChanged public decimal AlertLevel get return alertLevel set if alertLeve
  • jquery中如何获取的值?

    您好 我正在尝试从 jquery 获取 p selectOneMenu 的值 但我还没有得到 我使用 JSF 和 primefaces 作为我的 UI 组件
  • 阿拉伯文本在 web 应用程序中显示,无需更改数据库

    当用户输入阿拉伯语名称和密码时 我应该检索该用户的数据 在java中 我使用utf 8编码 我应该从数据库中以阿拉伯文本的形式检索数据 我使用的数据库是 sql server 2005 并且该列设置为 varchar 而不是 nvarcha
  • 如何使 StdIn.isEmpty() 返回 true?

    我正在使用算法 Coursera 算法课程中提供的普林斯顿库中的 StdIn isEmpty 方法 但对其工作原理感到困惑 我有声明 while StdIn isEmpty 附带一些读取用户输入的代码 但我似乎无法跳出循环 根据我的理解 如
  • python sqlite 插入命名参数或 null

    我正在尝试使用命名参数将字典中的数据插入到数据库中 我用一个简单的 SQL 语句来完成这个工作 例如 SQL INSERT INTO status location arrival departure VALUES location arr
  • 处理大型数组而不会出现运行时错误

    当我使用大小为 10 5 10 5 的数组 例如int a 100000 100000 由于该数组消耗更多内存 这可能是运行时错误的原因之一 我应该如何声明这个数组 二维数组 例如int a 100000 100000 这样我就可以应对问题
  • 使用“git filter-branch”来更正最后 N 次提交中的提交者日期?

    我最近需要使用 git am 向我的存储库应用 16 个补丁 并且我小心翼翼地为每个补丁使用 committer date is author date 然而 我还需要调整每个 amd 补丁的提交消息 并且在完成所有 16 个补丁之后 我发
  • MPI - 异步广播/收集

    我有一个项目 需要 n 个进程才能工作 直到问题得到解决 每个从属进程执行相同的代码 当某种情况出现时 该进程需要以非阻塞的方式通知所有其他进程 其他进程也需要以非阻塞的方式接收这个消息 有没有办法不用线程单独的循环 我已经有一段时间没有使
  • 如何在 Drools 中参数化后时间约束?

    我有一个与以下示例非常相似的规则 rule correlate orders when bo BuyOrderEvent id id ae AckEvent id id this after 0 10s bo then do somethi
  • 为什么 PHP Composer 这么慢?

    Why is PHP 作曲家 https en wikipedia org wiki Composer software 当我所做的只是初始化一个零依赖项的项目时 速度这么慢 以下是我运行的命令 composer init composer
  • 为什么闭包比全局变量更能保存变量?

    我了解闭包在 JavaScript 中的工作原理 但我的问题是为什么要费尽心思创建闭包来保存变量 不能把变量设为全局吗 或者这会扰乱全局范围并使您的代码容易出错 这是一个范围界定问题 全局变量就是这样 Global toeveryone 使
  • 我应该如何安装keras-bert才能在R端正确使用?

    我正在尝试按照解释安装 keras berthere https blogs rstudio com ai posts 2019 09 30 bert r 虽然它已成功安装在环境 as 上 但我在 R 端看不到 keras bert ber