【问题标题】:Convert 2D numpy array to Tensorflow Dataset将 2D numpy 数组转换为 Tensorflow 数据集
【发布时间】:2018-07-22 00:24:18
【问题描述】:

我有一个形状为 (n, 12) 的 numpy 数组,表示我的数据的输入数据点,浮点形式,以及一个形状为 (n,) 的 numpy 数组,其中包含数据点的标签(整数)。

但是,我不知道如何将其转换为 tensorflow 数据集 - guide 方法会引发错误:

违规的代码行是dataset= tf.data.Dataset.from_tensor_slices((features, labels)) 给出错误TypeError: Expected binary or unicode string, got Decimal('0.4367')

谢谢

【问题讨论】:

  • 编辑您的帖子以包含您的代码和错误
  • 添加代码和错误
  • 似乎featureslabels 属于意外类型。您是从文本文件中读取它们吗?在尝试构建数据集之前,您是否将字符串转换为数字格式?
  • 经过外部处理,特征全部为十进制值,标签全部为整数

标签: python numpy tensorflow tensorflow-datasets


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 2013-06-30
    • 2021-12-29
    • 2018-02-08
    • 1970-01-01
    • 2012-06-08
    • 2019-10-31
    相关资源
    最近更新 更多