Анализ временных рядов с помощью глубокого обучения PythonPython

Программы на Python
Anonymous
Анализ временных рядов с помощью глубокого обучения Python

Сообщение Anonymous »

Я провожу анализ данных временных рядов с помощью Python. Но есть проблема.

Код: Выделить всё

import os
from omegaconf import OmegaConf

import pandas as pd
import torch
import dataset as module_data
import model as module_arch
import metric as module_metric
from utils import MetricTracker, get_data_path

END_DATE = '2024-03-22'

def get_test_dollar_price(start_date, end_date):
"""
Do not fix this function
"""
df = pd.read_csv(get_data_path('Bitcoin'), index_col="Date", parse_dates=True, na_values=['nan'])
df.sort_index(inplace=True)
price = df.loc[start_date:end_date, ['Price']][-10:].values
return price

def main(config):

test_dataset = getattr(module_data, config.dataset.type)(end_date=END_DATE,
is_training=False,
**config.dataset.args)
test_dataloader = getattr(torch.utils.data, config.dataloader.type)(test_dataset,
batch_size=1,
shuffle=False,
num_workers=0,)

###################################################################################################################
# inspect test data
if abs(test_dataset.y.numpy() - get_test_dollar_price('2024-03-12', END_DATE)).sum() > 1e-3:
raise ValueError('your test data is wrong!')
###################################################################################################################

model = getattr(module_arch, config.model.type)(input_size=test_dataset.__getitem__(0)[0].size(0), **config.model.args)
model.load_state_dict(torch.load(config.test.load_path))
model.eval()

# GPU
device = torch.device('mps')

model = model.to(device)

metrics = [getattr(module_metric, met) for met in config.test.metrics]
metric_tracker_test = MetricTracker(*config.test.metrics)

for i, (x, y) in enumerate(test_dataloader):
x, y = x.to(device), y.to(device)
pred_y = model(x)
print(f'[DAY {i+1:02d}] predict : {pred_y[0].item():.1f} | target : {y[0].item():.1f}')
for met in metrics:
metric_tracker_test.update(met.__name__, met(pred_y, y))

print('\nTEST ' + ',  '.join([f'{k.upper()}: {v:.2f}' for k, v in metric_tracker_test.result().items()]))

это мой код test.py, если я запускаю этот код, возникает ошибка значения. в этой части тестовых данных #inspect start_data — 25 января 2022 г. Я хочу знать, почему возникла ошибка значения (ваши тестовые данные неверны). помогите мне
Я много раз менял дату. но результат тот же

Подробнее здесь: https://stackoverflow.com/questions/784 ... p-learning

Вернуться в «Python»