Tensorflow 2 timeseries_dataset_from_array 输入与目标批次形状差异

min*_*als 5 tensorflow recurrent-neural-network

tf.keras.preprocessing.timeseries_dataset_from_array函数用于在顺序数据上创建滑动小批量窗口,例如涉及 rnn 网络的任务。

根据文档,它返回一小批输入和目标。但是,此函数返回的目标小批量没有sequence_length(时间步长)维度。例如。

data = timeseries_dataset_from_array(
            data=tokens,
            targets=targets,
            sequence_length=25,
            batch_size=32,
        )

for minbatch in data:
    inputs, targets = minbatch
    assert(inputs.shape[1] == targets.shape[1]) # error
Run Code Online (Sandbox Code Playgroud)

inputs具有[32, 25, 1]形状的情况下,你已经只是有词索引存在和targets容易混淆的具有[32, 1]形状。

所以,我的问题是我应该如何将具有 25 个单位的窗口的输入张量映射到具有 0 个单位的窗口的目标张量?

我总是训练序列模型的方法是将输入张量输入[32, 25, 1],然后将其投影到[32, 25, 100],然后将目标张量输入到大小[32, 25, 1]为损失函数的网络,或者如果您有多类问题,则目标向量为[32, 25, num_of_classes]

这就是为什么我对来自目标张量的形状及其timeseries_dataset_from_array背后的直觉感到困惑。