You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Reticulate中实现Python的from-import且不导入整个模块?

在Reticulate中实现Python的from-import语法(无需导入整个模块)

嘿,这个问题我刚好研究过!确实在Reticulate里可以实现类似Python from tensorflow import keras 这种只导入指定子模块/对象、不加载整个父模块的操作,你之前用的keras <- import('tensorflow')$keras 之所以会导入整个tensorflow,是因为它先完整加载了父模块,再从中提取子模块,本质上还是把整个模块都拉进来了。

正确的实现方式:使用import_from()函数

Reticulate专门提供了import_from()函数来模拟Python的from...import语法,它只会加载你指定的部分,不会导入整个父模块。举个例子:

library(reticulate)
# 完全对应Python的 from tensorflow import keras
keras <- import_from("tensorflow", "keras")

扩展用法示例

除了导入子模块,这个函数还支持Python里from...import的其他常见用法:

  • 一次性导入多个对象:
    # 对应Python的 from tensorflow.keras.layers import Dense, Dropout
    c(Dense, Dropout) %<-% import_from("tensorflow.keras.layers", c("Dense", "Dropout"))
    
  • 给导入的对象重命名:
    # 对应Python的 from tensorflow import keras as ks
    ks <- import_from("tensorflow", "keras", alias = "ks")
    

为什么这个方法更高效?

和你之前用的import('tensorflow')$keras相比,import_from()不会把整个tensorflow模块加载到R环境中,它只会拉取你需要的子模块或对象,对于tensorflow这种体积庞大的模块来说,能显著减少内存占用,运行效率也会更高。

内容的提问来源于stack exchange,提问作者daniellga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 23:27:38