В настоящее время я начинаю с платформы Tensorflow. Я следовал руководству по структурированным данным, чтобы построить многомерную многошаговую модель для прогнозирования временных рядов погоды. Все работает нормально, за исключением того, что я хочу оптимизировать производительность и использование ОЗУ
Поэтому я хочу перестроить метод multivariate_data в генератор, который будет выдавать данные.
Данные о погоде считываются из CSV-файл через pandas и преобразовать в pandas dataframe.
df = pd.read_csv(csv_path)
Обучающие переменные
TRAIN_SPLIT = 300000
tf.random.set_seed(13)
features_considered = ['p (mbar)', 'T (degC)', 'rho (g/m**3)']
features = df[features_considered]
features.index = df['Date Time']
Стандартизация данных
dataset = features.values
data_mean = dataset[:TRAIN_SPLIT].mean(axis=0)
data_std = dataset[:TRAIN_SPLIT].std(axis=0)
dataset = (dataset - data_mean) / data_std
Моя попытка Многошаговая модель
import numpy as np
import pandas as pd
def multivariate_data(dataset, target, start_index, end_index, history_size,
target_size, step):
start_index = start_index + history_size
if end_index is None:
end_index = len(dataset) - target_size
for i in range(start_index, end_index):
indices = range(i - history_size, i, step)
data = dataset[indices]
yield data
yield target[i:i + target_size]
yield np.array(dataset[indices]), np.array(target[i:i + target_size])
Оригинальный метод multivariate_data:
import numpy as np
import pandas as pd
def multivariate_data(dataset, target, start_index, end_index, history_size,
target_size, step, single_step=False):
data = []
labels = []
start_index = start_index + history_size
if end_index is None:
end_index = len(dataset) - target_size
for i in range(start_index, end_index):
indices = range(i - history_size, i, step)
data.append(dataset[indices])
if single_step:
labels.append(target[i + target_size])
else:
labels.append(target[i:i + target_size])
return np.array(data), np.array(labels)
Я новичок в машинном обучении и буду признателен за любую помощь или руководство, как правильно переписать метод для извлечения данных , передайте это на тренинг и прогнозирование