データセットをサンプルで作る際にわからない部分があった。
このデータセットを作る目的としては、
RNNで10個先のデータを予測するために作成している。
また、各タイムステップで予測を実行し、そのシーケンスの出力を各タイムステップで保存するため。
import tensorflow as tf import tensorflow.keras as keras import numpy as np import matplotlib.pyplot as plt np.random.seed(42) #sin波を作成する関数 def generate_time_series(batch_size, n_steps): freq1, freq2, offsets1, offsets2 = np.random.rand(4, batch_size, 1) time = np.linspace(0, 1, n_steps) series = 0.5 * np.sin((time - offsets1) * (freq1 * 10 + 10)) # wave 1 series += 0.2 * np.sin((time - offsets2) * (freq2 * 20 + 20)) # + wave 2 series += 0.1 * (np.random.rand(batch_size, n_steps) - 0.5) # + noise return series[..., np.newaxis].astype(np.float32) #データセットを作製 n_steps = 50 series = generate_time_series(10000, n_steps + 10) X_train = series[:7000, :n_steps] X_valid = series[7000:9000, :n_steps] X_test = series[9000:, :n_steps] Y = np.empty((10000, n_steps, 10)) for step_ahead in range(1, 10 + 1): #この部分のstep_ahead:step_ahead + n_stepsがわからない。 Y[..., step_ahead - 1] = series[..., step_ahead:step_ahead + n_steps, 0] Y_train = Y[:7000] Y_valid = Y[7000:9000] Y_test = Y[9000:]

あなたの回答
tips
プレビュー