如何change/insert形状of/into BatchDataset?
How to change/insert the shape of/into BatchDataset?
我正在使用 TF 2.0 从 github 存储库中复制 Deep Voice 3 论文。
[https://github.com/Kyubyong/deepvoice3]
我已经完成了所有预处理。
我还创建了从张量(形状为 (13066,))到 TensorSliceDataset(形状为 (None,)),映射了一些函数并对其进行了批处理。
现在,我有了形状为 (None、None) 的 BatchDataset。
我不知道如何将那个 (None, None) 形状变成想要的形状 (16, 180)?
repo 是用 TF 1.3 实现的。
我正在使用 TF 2.0。
当旧代码为 tf.train.batch 时,我前往 tensorflow 网站,发现在 TF 2.0 中使用 tf.data.Dataset。
但是,它没有塑造数据集的选项。
下面是 TF 1.3 代码。
# TF old version
texts = tf.train.batch([text], shapes=[(hp.Tx,)],
num_threads=32,
batch_size=hp.batch_size,
capacity=hp.batch_size*32,
dynamic_pad=False) # (16, 180)
# TF 2.0
texts = texts.batch(hp.batch_size) # (None, None)
BatchDataset应用形状前的形状为(None,None)。
应用形状后 BatchDataset 的形状应该是 (16, 180).
谢谢!
如果您已经知道 texts
包含形状为 180
的元素,那么您可以只使用 tf.data.Dataset.map
来设置张量的静态形状:
def set_shape(value):
value.set_shape((180,))
return value
texts = texts.map(set_shape).batch(hp.batch_size)
我正在使用 TF 2.0 从 github 存储库中复制 Deep Voice 3 论文。 [https://github.com/Kyubyong/deepvoice3] 我已经完成了所有预处理。 我还创建了从张量(形状为 (13066,))到 TensorSliceDataset(形状为 (None,)),映射了一些函数并对其进行了批处理。 现在,我有了形状为 (None、None) 的 BatchDataset。 我不知道如何将那个 (None, None) 形状变成想要的形状 (16, 180)?
repo 是用 TF 1.3 实现的。 我正在使用 TF 2.0。 当旧代码为 tf.train.batch 时,我前往 tensorflow 网站,发现在 TF 2.0 中使用 tf.data.Dataset。 但是,它没有塑造数据集的选项。 下面是 TF 1.3 代码。
# TF old version
texts = tf.train.batch([text], shapes=[(hp.Tx,)],
num_threads=32,
batch_size=hp.batch_size,
capacity=hp.batch_size*32,
dynamic_pad=False) # (16, 180)
# TF 2.0
texts = texts.batch(hp.batch_size) # (None, None)
BatchDataset应用形状前的形状为(None,None)。 应用形状后 BatchDataset 的形状应该是 (16, 180).
谢谢!
如果您已经知道 texts
包含形状为 180
的元素,那么您可以只使用 tf.data.Dataset.map
来设置张量的静态形状:
def set_shape(value):
value.set_shape((180,))
return value
texts = texts.map(set_shape).batch(hp.batch_size)