TensorFlow -Zeitreihen können Sinus vorhersagen
Posted: 06 May 2025, 10:22
Ich versuche, einen Tensorflow -Code für einfache Timeseries -Vorhersage in Where zu validieren: < /p>
Code: Select all
X = np.arange(0, 2000, 0.5)
y = 2 * np.sin(X) + 0.8 * np.random.rand(X.shape[0])
< /code>
und die folgenden Parameter für die Timeseries: < /p>
LOOK_BACK = 100
FORECAST_HORIZON = 100
< /code>
Jedes Modell, das ich verwende oder versuche def create_dataset(X_data, y_data, shuffle=False, repeat=False):
# Ensure input and output are tensors
X_data = tf.convert_to_tensor(X_data, dtype=tf.float32)
y_data = tf.convert_to_tensor(y_data, dtype=tf.float32)
# Create windowed dataset
dataset = tf.keras.preprocessing.timeseries_dataset_from_array(
data=tf.concat([X_data, y_data], axis=-1), # combine to keep alignment
targets=None,
sequence_length=look_back + forecast,
sequence_stride=1,
shuffle=shuffle,
batch_size=1,
)
def split_input_target(sequence):
input_seq = sequence[:, :look_back, : X_data.shape[-1]]
target_seq = sequence[:, look_back:, X_data.shape[-1] :]
return input_seq, target_seq
dataset = dataset.map(split_input_target)
return dataset
train_dataset = create_dataset(X_train, y_train, shuffle=True, repeat=True)
val_dataset = create_dataset(X_val, y_val)
test_dataset = create_dataset(X_test, y_test)
return train_dataset, val_dataset, test_dataset