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

TensorFlow文本分类模型无法基于Polars DataFrame预测求助

问题:TensorFlow文本分类模型Polars DataFrame预测失败,Pandas正常

问题背景

训练了一个用于文本分类的TensorFlow模型,基于Pandas DataFrame可正常完成预测,但使用Polars DataFrame调用predict时触发类型错误。

相关代码

导入依赖与加载模型

import pandas as pd
import polars as pl
import joblib
from tensorflow.keras.models import load_model

loaded_model = load_model('model.keras')
load_Le = joblib.load('label_encoder.joblib')

Pandas DataFrame预测(正常运行)

text = "some example text"
df = pd.DataFrame({"Coment":[text]})
predict = loaded_model.predict(df["Coment"])

Polars DataFrame预测(报错)

text = "some example text"
df = pl.DataFrame({"Coment":[text]})
predict = loaded_model.predict(df["Coment"])

模型保存前的推理模型构建代码

inputs = keras.Input(shape=(1,), dtype="string")
processed_inputs = text_vectorization(inputs)
outputs = model(processed_inputs)
inference_model = keras.Model(inputs, outputs)
inference_model.save('model.keras')

报错信息

TypeError: cannot convert the argument type_value: String to a TensorFlow Dtype.

解决建议

方法1:将Polars Series转换为NumPy数组或Python列表

TensorFlow对Polars Series的类型适配不完善,显式转换为NumPy数组或列表即可兼容:

text = "some example text"
df = pl.DataFrame({"Coment":[text]})
# 转换为NumPy数组
predict = loaded_model.predict(df["Coment"].to_numpy())
# 或转换为Python列表
predict = loaded_model.predict(df["Coment"].to_list())

方法2:将Polars DataFrame转换为Pandas DataFrame

借助Pandas与TensorFlow的良好兼容性,先转成Pandas DataFrame再取列:

text = "some example text"
df = pl.DataFrame({"Coment":[text]})
predict = loaded_model.predict(df.to_pandas()["Coment"])

原因说明

TensorFlow的输入处理逻辑对Pandas Series有专门的类型适配逻辑,但目前尚未完全支持Polars的原生数据类型,因此需要显式转换数据格式来规避类型识别错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:53:12