Python 批处理tf.data.Dataset.filter()?

Python 批处理tf.data.Dataset.filter()?,python,tensorflow,Python,Tensorflow,我知道可以通过以下方式过滤数据集: d=tf.data.Dataset.from_tensor_切片([1,2,3]) d=d.filter(λx:x[1,2] #相等比较需要'tf.math.equal(x,y)' def过滤器(x): 返回tf.math.equal(x,1) d=d.filter(filter#fn)#==>[1] 如果我想做“批量筛选”呢?我的意思是,给定一批字符串['str1','str2','str3','str4'],我如何创建一个能够返回给我一个过滤数据集的数据

我知道可以通过以下方式过滤数据集:

d=tf.data.Dataset.from_tensor_切片([1,2,3])
d=d.filter(λx:x<3)#==>[1,2]
#相等比较需要'tf.math.equal(x,y)'
def过滤器(x):
返回tf.math.equal(x,1)
d=d.filter(filter#fn)#==>[1]

如果我想做“批量筛选”呢?我的意思是,给定一批字符串
['str1','str2','str3','str4']
,我如何创建一个能够返回给我一个过滤数据集的数据集,该数据集会吐出与这些字符串对应的一批值:
[val1\u尊重\u str1,val2\u尊重\u str2,val3\u尊重\u str3,val4\u尊重\u str4]

您需要的不是过滤器而是映射。map函数将计算映射值,例如:

d=tf.data.Dataset.from_tensor_切片(列表(范围(100)))
def map_fn(x):
返回x*2#如果需要任意python逻辑,请使用tf.py#u函数包装它
d=d.shuffle(100).批处理(10).映射(map\u fn)
d = tf.data.Dataset.from_tensor_slices([1, 2, 3])

d = d.filter(lambda x: x < 3)  # ==> [1, 2]

# `tf.math.equal(x, y)` is required for equality comparison
def filter_fn(x):
  return tf.math.equal(x, 1)

d = d.filter(filter_fn)  # ==> [1]