将2D的numpy数组转换成Tensorflow数据集

4
我有一个形状为(n, 12)的numpy数组,表示我的数据输入数据点,浮点数格式,还有一个形状为(n,)的numpy数组,包含数据点的标签(整数)。
但是,我无法将其转换为tensorflow数据集 - 指南方法会引发一个错误:
有问题的代码行是dataset= tf.data.Dataset.from_tensor_slices((features, labels)),导致错误TypeError: Expected binary or unicode string, got Decimal('0.4367') 谢谢

1
编辑您的帖子,包括您的代码和错误。 - mikkola
添加了代码和错误信息。 - James
似乎featureslabels的类型不符合预期。您是从文本文件中读取它们吗?在尝试构建数据集之前,是否将其从字符串转换为数字格式? - mikkola
它被外部处理,以至于特征全部是十进制值,标签完全是整数。 - James
1个回答

0

看起来你的输入数组之一包含类型为decimal.Decimal的元素。TensorFlow不支持这种类型,因此您需要将数组转换为np.float32np.float64之一。

例如,假设features是包含Decimal值的数组,则可以按以下方式进行转换:

import numpy as np
features = np.array([decimal.Decimal(1.0), decimal.Decimal(2.0), decimal.Decimal(3.0)])

print(features)  # ==> "[Decimal('1') Decimal('2') Decimal('3')]"
print(features.dtype)  # ==> "object"

features = features.astype(np.float32)

print(features)  # ==> "[1. 2. 3. 4.]"
print(features.dtype)  # ==> "float32"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接