如何通过 tf.data.Dataset API 向生成的批次添加时间步长维度
How to add time step dimension to generated batch by tf.data.Dataset API
我想为我的批次生成添加时间步长维度。
目前我在做
train_ds = tf.data.Dataset.\
from_tensor_slices((x_train, y_train)).\
shuffle(10000).\
batch(32)
并获取大小为 (32, feature_vector_length)
的批次
我想将 time_step_dimention 添加到我的批处理中以获得 (batch_size,time_stemp,feature_vector_length)
如何使用tf.data
做圆顶?
您可以使用 tf.data.Dataset()
的 .window()
方法和 .zip()
您的输入和输出。
import tensorflow as tf
import numpy as np
x_train = np.random.rand(1000, 5)
y_train = np.sum(x_train, axis=1)
x = tf.data.Dataset.from_tensor_slices(x_train).\
window(size=3, shift=1, stride=1, drop_remainder=True).\
flat_map(lambda l: l.batch(3))
y = tf.data.Dataset.from_tensor_slices(y_train)
ds = tf.data.Dataset.zip((x, y)).batch(2, drop_remainder=True)
for xx, yy in ds:
print(xx, yy)
break
tf.Tensor(
[[[0.85339111 0.00937855 0.6432005 0.31875691 0.83835893]
[0.91914805 0.13469408 0.40381527 0.80296816 0.4389627 ]
[0.40326491 0.28575999 0.86602507 0.40515333 0.35390637]]
[[0.91914805 0.13469408 0.40381527 0.80296816 0.4389627 ]
[0.40326491 0.28575999 0.86602507 0.40515333 0.35390637]
[0.00197349 0.46558597 0.66426367 0.00787106 0.07879078]]], shape=(2, 3, 5),
dtype=float64) tf.Tensor([2.663086 2.69958826], shape=(2,), dtype=float64)
这是一批包含 5 个特征的 3 个时间步长的 2 个张量及其各自的目标。
我想为我的批次生成添加时间步长维度。
目前我在做
train_ds = tf.data.Dataset.\
from_tensor_slices((x_train, y_train)).\
shuffle(10000).\
batch(32)
并获取大小为 (32, feature_vector_length)
我想将 time_step_dimention 添加到我的批处理中以获得 (batch_size,time_stemp,feature_vector_length)
如何使用tf.data
做圆顶?
您可以使用 tf.data.Dataset()
的 .window()
方法和 .zip()
您的输入和输出。
import tensorflow as tf
import numpy as np
x_train = np.random.rand(1000, 5)
y_train = np.sum(x_train, axis=1)
x = tf.data.Dataset.from_tensor_slices(x_train).\
window(size=3, shift=1, stride=1, drop_remainder=True).\
flat_map(lambda l: l.batch(3))
y = tf.data.Dataset.from_tensor_slices(y_train)
ds = tf.data.Dataset.zip((x, y)).batch(2, drop_remainder=True)
for xx, yy in ds:
print(xx, yy)
break
tf.Tensor(
[[[0.85339111 0.00937855 0.6432005 0.31875691 0.83835893]
[0.91914805 0.13469408 0.40381527 0.80296816 0.4389627 ]
[0.40326491 0.28575999 0.86602507 0.40515333 0.35390637]]
[[0.91914805 0.13469408 0.40381527 0.80296816 0.4389627 ]
[0.40326491 0.28575999 0.86602507 0.40515333 0.35390637]
[0.00197349 0.46558597 0.66426367 0.00787106 0.07879078]]], shape=(2, 3, 5),
dtype=float64) tf.Tensor([2.663086 2.69958826], shape=(2,), dtype=float64)
这是一批包含 5 个特征的 3 个时间步长的 2 个张量及其各自的目标。