tensorflow - 如何从 DataFrame 创建一个 tf.data.Dataset,其中一列的每个条目都是固定长度的 Numpy 数组或列表?
问题描述
如何从 DataFrame 创建一个 tf.data.Dataset,其中一列的每个条目都是固定长度的 Numpy 数组或列表?
我收到此错误,ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)。
df = pd.DataFrame([[1,2,np.array([3,4])], [4,5,np.array([6,7])]], columns=['col1', ' col2','col3'])
ds = tf.data.Dataset.from_tensor_slices(dict(df))
解决方案
对于混合数据类型,使用 Dataset.from_generator:
def iter_to_gen(it):
def f():
for x in it:
yield x
return f
ds = Dataset.from_generator( iter_to_gen(map(tuple, df.values)), (tf.int32, tf.int32, tf.int32))
print(list(ds.as_numpy_iterator()))
产生:
[(1, 2, array([3, 4], dtype=int32)), (4, 5, array([6, 7], dtype=int32))]
推荐阅读
- python - 基于sympy中向量导数的向量函数的导数
- javascript - Redux 存储更改后 React 组件不更新
- android - 如何在firebase中检查用户电子邮件和密码验证以登录
- php - 从 Array Key 值中获取图像 src 并在 PHP 中显示
- docker - 独立容器和 swarm 服务之间的连接
- spring - Spring 使用什么来进行反序列化?
- java - 如何比较 HashMaps
> 当值对的顺序不正确时 - django - Azure webapp 部署 docker 容器未响应 HTTP ping
- python - 带有标题标签的 BS4 类
- c# - 将 Asp.Mvc 和 Web.Api 在同一个解决方案中部署到 IIS