提问人:Krishnang K Dalal 提问时间:10/24/2023 最后编辑:Krishnang K Dalal 更新时间:10/24/2023 访问量:15
在 Tensorflow 中更改 3D Tensor 以获得形状(BATCH_SIZE、SEQ_LEN、1)
Change 3D Tensor to get shape (BATCH_SIZE, SEQ_LEN, 1) in Tensorflow
问:
我有一个 26 个月的时间序列,我用它来训练一个预测模型,该模型在查看过去 12 个月的序列后预测下个月。我已经创建了序列和目标,但无法将其转换为 LSTM 所需的形状。非常感谢您的帮助。提前非常感谢。以下是我的代码:LSTM
print(df.loc[train_samples].values.shape) ### Prints: (6176, 26)
BUFFER_SIZE = len(train_nunique)
BATCH_SIZE = 64
SEQ_LEN = 12
train_raw = (tf.data.Dataset
.from_tensor_slices(df.loc[train_samples].values)
.shuffle(BUFFER_SIZE)
.batch(BATCH_SIZE))
def create_X_y(x):
n = x.shape[1]-1
past_sequence = []
target = []
for i in range(n):
seq_idx = i+SEQ_LEN
target_idx = seq_idx + 1
if target_idx <= n:
past_sequence.append(x[:,i:seq_idx])
target.append(x[:,target_idx])
past_sequence = tf.convert_to_tensor(past_sequence, dtype=tf.float32)
target = tf.convert_to_tensor(target, dtype=tf.float32)
return past_sequence, target
train_ds = train_raw.map(create_X_y, tf.data.AUTOTUNE)
### Test the X, y output
for ex_train_seq, ex_train_tar in train_ds.take(1):
print(ex_train_seq.shape) ### Print: (13, 64, 12)
print()
print(ex_train_tar.shape) ### Prints: (13, 64)
我生成序列的预处理步骤产生 (13, 64, 12) 和 (13, 64) 的 X 和 y 形状,因为它是 26 个月的滑动窗口。如何获得序列建模所需的阶数 (BATCH_SIZE, SEQ_LEN, 1) 的 X 到 和 y?如果有更好的方法来构建用于预测的数据,请随时提出建议。提前非常感谢。(64, 12, 1)
(64,1)
答: 暂无答案
评论