【发布时间】:2020-02-13 10:56:46
【问题描述】:
当我尝试为 LSTM 提供多个输入时,我在使用 tf.data.dataset API 时遇到了一些困难,也就是说,每个特征都有一个长度为 n 的向量(时间序列中的步骤),让我们一天, 5个特点。因此,我有一个长度为 5 个向量的列表,让我们说,n = 3。
例如,我有一个生成器,它在每一步都产生具有以下结构的数据:
[
array(
[
[5.00000000e-01, 5.00000000e-01, 5.00000000e-01],
[9.00000000e+00, 9.00000000e+00, 9.00000000e+00],
[7.00000000e+00, 9.00000000e+00, 1.00000000e+01],
[6.30841636e-03, 4.22776321e-02, 1.49106372e-02],
[4.00000000e+00, 1.00000000e+01, 2.20000000e+01]
]),
array(
[
[ 9, 9, 9],
[13, 13, 13]
]
)
]
当我尝试使用代码行将其放入 api 时:
tf.data.Dataset.from_generator(
generator=lambda: generator,
output_types=(
(
(tf.float32, tf.float32, tf.float32),
(tf.int32, tf.int32, tf.int32),
(tf.int32, tf.int32, tf.int32),
(tf.float32, tf.float32, tf.float32),
(tf.int32, tf.int32, tf.int32)
),
(
(tf.int32, tf.int32, tf.int32),
(tf.int32, tf.int32, tf.int32)
)
)
)
我得到错误:
TypeError: generator 产生的元素与预期结构不匹配。预期的结构是 .... 但产生的元素是 ... 。
我错过了什么?如何编写正确的 output_shape?或者不可能给 tf.data 的生成器一个嵌套结构?如何使用 tf.data.dataset.from_generator 处理多个输入和输出?
提前感谢您的帮助。
【问题讨论】:
标签: tensorflow keras generator lstm tensorflow-datasets