将二维 numpy 数组转换为 Tensorflow 数据集

Convert 2D numpy array to Tensorflow Dataset

我有一个形状为 (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')

谢谢

您的输入数组之一似乎包含 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"