如this post中所述,public static List<String> split(String str) {
List<String> res = new ArrayList<>();
StringBuilder buf = null;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= '0' && ch <= '9') {
if (buf == null)
buf = new StringBuilder();
buf.append(ch);
} else {
if (buf != null) {
res.add(buf.toString());
buf = null;
}
res.add(String.valueOf(ch));
}
}
if (buf != null)
res.add(buf.toString());
return Collections.unmodifiableList(res);
}
不支持map函数中Dataset.map
次调用的并行性(tf.py_func
部分将按顺序执行)。
此问题是否有解决方法?通常情况下输入管道需要复杂的python控制流和tensorflow中不存在的操作。在过去,我曾经使用python库实现自己的队列和预处理线程,但是使用方便的tf.py_func
接口能够做到这一点非常方便。