如何使用自定义函数在TF数据集上使用Apply和Map函数

时间:2020-05-21 07:34:49

标签: tensorflow tensorflow2.0 tensorflow-transform

我试图了解如何在TensorFlow中使用地图和应用功能。目标是使用所有基本数据预处理步骤,同时将数据读入TensorFlow,因为map提供了使操作并行化的选项。

a_list = [b"THis is for Testing"]

将a_list转换为tf数据集格式

a_dataset = tf.data.Dataset.from_tensors(a_list)

print(list(a_dataset.as_numpy_iterator()))
[array([b'THis is for Testing'], dtype=object)]

应用地图计算列表的长度

a_dataset_len = a_dataset.map(lambda x: len(x))

print(list(a_dataset_len.as_numpy_iterator()))

[1]

应用地图将所有字符串都转换为小写

a_dataset_lower = a_dataset.map(lambda x: x.lower())
AttributeError: 'Tensor' object has no attribute 'lower'

在a_list上使用Apply函数

a_dataset.apply(lambda x:len(x))
TypeError: object of type 'TensorDataset' has no len()

请帮助我了解

  1. 为什么在map是时我无法使用len(x)的apply函数 能够执行?
  2. 如何创建自己的自定义函数并使用预先构建的自定义函数在Dataset.map和Dataset.apply中传递它?

0 个答案:

没有答案