tensorflow删除数据集中的空白行

时间:2018-04-04 14:53:49

标签: python csv tensorflow tensorflow-datasets

我已经提出以下代码来删除张量流数据集中的空行,然后将它们作为CSV输入处理。这到目前为止工作正常。有更好或更有效的方法吗?

printRow

背景信息:许多tensorflow演示脚本假设输入文件干净利落,数据中没有嵌入空行或空格。当添加虚假空格(故意或偶然)时,tf.decode_csv方法似乎是抱怨的方法,没有关于哪条线不满意的线索。在处理输入文件时,我更喜欢我的代码容忍。因此,我们努力消除空白行。

下面的行不起作用,因为它将删除具有前导空格的有效行。

def filter_blank_lines(line):
   import re
   # This function will get called once for each separate item in the dataset.
   # print("filter_blank_lines line:", line, type(line))
   line2 = line.decode() # re wont take byte string!
   # Here we search for useful data, ignoring whitespace, commas and
   # other special charactars, which is a subset of \S
   m = re.search("\w", line2, re.I|re.M)
   # print("filter_blank_lines line2:", line2, "m:", m)
   if m is None:
      return False # search failed, whitespace only
   else:
      return True # non-blank line

dataset = dataset.filter(lambda line: tf.py_func(filter_blank_lines, [line], tf.bool, stateful=False))

我在Tensorflow V1.7.0中修改了新的tf.regex_replace。它在这里不起作用,因为过滤器需要一个布尔结果。 dataset2 = dataset2.filter(lambda line: tf.not_equal(tf.substr(line, 0, 1), " ")) 也可以提供帮助。

tf.cast

0 个答案:

没有答案