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

如何在Python中将TensorFlow神经网络模型保存为RDS文件?

如何在Python中将TensorFlow/Keras模型保存为RDS文件

你遇到的错误是因为rpy2默认没有实现Keras Sequential模型从Python到R对象的转换逻辑。下面提供两种可行的解决方案:

方法一:通过Keras HDF5格式中转(推荐)

这种方法先将Python模型保存为Keras原生的HDF5格式,再通过rpy2调用R的keras库加载模型并转存为RDS,步骤简单且兼容性好:

  1. 先在Python中保存Keras模型为HDF5文件:
model.save("my_model.h5")
  1. 使用rpy2调用R代码完成加载和转存:
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr

# 导入R的keras包(需确保R环境已安装keras并配置好TensorFlow后端)
keras = importr("keras")
saveRDS = robjects.r["saveRDS"]

# 在R环境中加载HDF5模型,再保存为RDS
r_model = keras.load_model("my_model.h5")
saveRDS(r_model, "model.rds")

方法二:传递模型结构与权重重建后保存

如果不想生成中间HDF5文件,可以直接导出模型的结构和权重,在R中重建模型后再保存为RDS:

import rpy2.robjects as robjects
from rpy2.robjects import numpy2ri
from rpy2.robjects.packages import importr
import json

# 启用numpy数组到R对象的自动转换
numpy2ri.activate()

keras = importr("keras")
saveRDS = robjects.r["saveRDS"]

# 从Python模型导出结构(JSON)和权重(numpy数组)
model_json = model.to_json()
weights = model.get_weights()

# 将JSON结构转为R字符对象
r_model_json = robjects.StrVector([model_json])

# 在R中重建模型并设置权重
r_model = keras.model_from_json(r_model_json[0])
r_model$set_weights(weights)

# 保存为RDS文件
saveRDS(r_model, "model.rds")

注意事项

  • 确保R环境的keras包版本与Python端的Keras/TensorFlow版本尽量匹配,避免因版本差异导致模型加载失败
  • 若R环境未配置keras,需先在R中执行install.packages("keras")和keras::install_keras()完成环境配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:15:50