尝试R语言用keras进行transformer时遇到的bug

编程入门 行业动态 更新时间:2024-10-19 01:21:19

尝试R<a href=https://www.elefans.com/category/jswz/34/1770116.html style=语言用keras进行transformer时遇到的bug"/>

尝试R语言用keras进行transformer时遇到的bug

bug如下:
Error in py_call_impl(callable, dots$args, dots$keywords) : RuntimeError: Evaluation error: object of type 'closure' is not subsettable.
或者

RuntimeError: in user code:C:\Program Files\R\R-3.6.2\library\reticulate\python\rpytools\call.py:21 python_function *
raise RuntimeError(res[kErrorKey])RuntimeError: Evaluation error: argument is missing, with no default.

可尝试的一种方法(重新下载安装),这种方法也是R语言下载keras和tensorflow的方法,比我以前的方法应该简单明了一些:

install.packages("keras") 
library(reticulate)
virtualenv_create("r-reticulate", python = install_python())
library(keras)
install_keras(envname = "r-reticulate")

这种方法是老师给我的,但是我这里是失败状态,应该是底层权限的问题,在virtualenv_create()这里不能创建新的虚拟环境。
所以我自己又捅咕了一会,得到了以下办法:
首先说一下我这里的R语言使用keras(tensorflow后端)的方法。 我的这种方法可能是冗余的(就是说安装了两次keras和tensorflow):先在anaconda3里面创建虚拟环境,下载好tensorflow(GPU-2.x.0版本),之后在R语言里面安装keras和tensorflow的包,这里我发现的问题就是R语言里面的keras使用keras_install()竟然自己不知道在哪里又下载了一次tensorflow。所以造成了我以为R使用的是我下载好的虚拟环境(anaconda里的),但是使用的是R语言自己下载的(是可以跑普通的模型,但是自己编写层就不可以了)。

所以使用以下办法:
关闭Rstudio,重新打开Rstudio(以管理者身份运行(以Rproject方式打开是不可以的(也是权限问题),会导致环境切换失败))。这个方法其实就是切换到正确的tensorflow后端。

library(reticulate)
use_python('C:/Users/hp/anaconda3/envs/r-tensorflow/python.exe')
reticulate::use_condaenv(condaenv = "r-tensorflow", required = TRUE)

这里面是我的路径,所以你们要替换成你们自己的路径,我自己目前不知道到底是第一行代码管用还是第二行代码管用。总之好使了。注释:‘r-tensorflow’是我在anaconda里面自己创建的虚拟环境的名字。第一行的代码就是那个虚拟幻境(r-tensorflow)的python所在地。不知道地址可以上anaconda里面查询一下环境地址和python的位置。

更多推荐

尝试R语言用keras进行transformer时遇到的bug

本文发布于:2024-02-26 22:05:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704106.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语言   keras   bug   transformer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!