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

Kaggle航空公司数据集拟合时NumPy转Tensor不支持list报错如何解决

问题描述

我知道这类问题此前已有用户提问,但我未从中找到适配我场景的解决方案,不清楚报错触发原因。我使用的是Kaggle平台的航空公司公开数据集,已完成数据清洗:
数据示意图
清洗后各字段的数据类型如下:
数据类型示意图
我通过以下代码将标签转换为整数类型:

data['sentiment']=data['airline_sentiment'].apply(lambda x: -1 if (x=="negative") else (0 if (x=="neutral") else 1))

转换后的data['sentiment']数据类型为<class 'pandas.core.series.Series'>。
在进行模型拟合时,出现报错:ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type list).。我尝试手动将对应字段转换为Tensor,代码如下:

data['text_'] = tf.convert_to_tensor(data['text_'])
print(type(data['text_']))

但仍触发相同报错,我全程没有手动将数据转换为NumPy类型,无法定位报错原因。后续我又尝试调用.to_numpy()方法将data['text_']转换为NumPy数组,转换操作执行成功,但打印data['text_']的类型时,发现仍为pandas Series类型,推测该操作没有原地修改字段的数据类型。请问该如何解决这个报错?

报错原因及解决方法

报错根因

这个报错的核心原因是data['text_']列的每个元素本身是列表类型,而非字符串或单值类型,TensorFlow无法直接将元素为列表的Series/NumPy数组转换为张量。
另外你之前的操作存在两个认知偏差:

  • pandas DataFrame的列本身就是Series类型,你直接把张量赋值给data['text_']时,pandas会自动把张量拆成元素存回Series结构,不会保留完整张量类型
  • to_numpy()方法返回的是新的NumPy数组,你没有将返回值赋值给变量,自然不会修改原Series的类型

解决步骤

  1. 先确认text_列的元素结构,执行以下代码查看单个元素的类型:
print(type(data['text_'].iloc[0]))
print(data['text_'].iloc[0])

如果输出确实是列表类型,说明你之前的文本预处理(比如分词、向量化)后将结果存成了列表放入了text_列。

  1. 模型训练时不要直接传入pandas Series,而是先将目标列转换为符合要求的张量/数组:

情况1:text_是分词后的token id列表,长度统一

直接堆叠为二维数组再转张量:

import numpy as np
# 提取text_列的所有列表堆叠为二维NumPy数组
text_arr = np.array(data['text_'].tolist())
# 转张量(也可以直接传入fit方法,TensorFlow会自动转换)
text_tensor = tf.convert_to_tensor(text_arr, dtype=tf.int32)
# 标签也同步提取为数组
label_arr = data['sentiment'].values

情况2:text_是长度不统一的列表

使用tf.ragged.constant生成 RaggedTensor,或做padding补长到统一长度:

# 方法1:用RaggedTensor适配变长序列
text_tensor = tf.ragged.constant(data['text_'].tolist(), dtype=tf.int32)
# 方法2:padding到固定长度
max_len = max(len(i) for i in data['text_'])
text_arr = tf.keras.preprocessing.sequence.pad_sequences(data['text_'].tolist(), maxlen=max_len, padding='post')
  1. 训练模型时直接传入处理好的text_arr/text_tensor和标签数组即可,不需要再存入pandas DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:36:03