【发布时间】:2020-11-01 00:29:45
【问题描述】:
我有一个 tf Dataset 对象定义如下:
train_dataset = tf.data.Dataset.from_tensor_slices((english_train, german_train))
print(train_dataset.element_spec)
Output:
(TensorSpec(shape=(), dtype=tf.string, name=None), TensorSpec(shape=(14,), dtype=tf.int32, name=None))
构造中使用的“english”和“german”对象是字符串数组(shape=(16000,) type=string) 和整数数组数组(shape=(16000, 14) type=int ),分别。
我想在英语对象中拆分这些字符串(例如“我在英语中”-> [“I”,“am”,“in”,“english”])。这必须在我构建数据集之后完成。
我用map的方法试了一下:
string_splitter = lambda english, german : tf.strings.split(english, sep=' ')
train_dataset.map(string_splitter)
print(train_dataset.element_spec)
Output:
(TensorSpec(shape=(), dtype=tf.string, name=None), TensorSpec(shape=(14,), dtype=tf.int32, name=None))
应用此操作后,我检查数据集以查看是否一切正常:
list(train_dataset.as_numpy_iterator())[0:3]
Output:
[(b"that's ludicrous .",
array([ 1, 11, 6, 5097, 3, 2, 0, 0, 0, 0, 0,
0, 0, 0], dtype=int32)),
(b'is anybody home ?',
array([ 1, 6, 366, 20, 75, 7, 2, 0, 0, 0, 0, 0, 0,
0], dtype=int32)),
(b"get tom's advice .",
array([ 1, 320, 52, 186, 5, 1058, 3, 2, 0, 0, 0,
0, 0, 0], dtype=int32))]
正如我们所见,字符串没有按照我的预期进行拆分。 我能做什么?
PS:字符串的长度可变。
【问题讨论】:
标签: python string tensorflow split tensor