Я пытаюсь обучить модель временного трансформатора слияния (TFT), используя библиотеку, организованную Pytorch, для задачи предсказания многоцелевого предсказания. Мой набор данных содержит многократные целевые столбцы с одним горячим, и я сталкиваюсь с ошибкой на шаге создания модели.
Сообщение об ошибке следующим образом: < /p>
'int' object is not iterable
< /code>
Несмотря на следование документации и настройку конфигурации, проблема сохраняется. Интересно, что когда я создаю упрощенный набор данных только с 1 целевыми столбцами, сценарий работает нормально. Ниже я предоставлю как рабочий сценарий (со случайными данными), так и неработающий сценарий (также со случайными данными). < /P>
Рабочий скрипт (упрощенный набор данных):
Вот скрипт, который работает с упрощенным набором данных, содержащим 1 целевой столбцы, вис. https://pytorch-forecasting.readthedocs ... lizer.html
import numpy as np
import pandas as pd
from pytorch_forecasting import TimeSeriesDataSet, TemporalFusionTransformer
from torch.nn import BCEWithLogitsLoss
# Create a test dataset with 5 target columns
test_data = pd.DataFrame(
dict(
**{f'target_{i}': np.random.randint(0, 2, 30) for i in range(1, 6)}, # 5 target columns
group=np.repeat(np.arange(3), 10),
time_idx=np.tile(np.arange(10), 3),
)
)
# Configure the TimeSeriesDataSet
dataset = TimeSeriesDataSet(
test_data,
group_ids=["group"],
target=[f'target_{i}' for i in range(1, 6)], # List of target columns
time_idx="time_idx",
min_encoder_length=5,
max_encoder_length=5,
min_prediction_length=2,
max_prediction_length=2,
time_varying_unknown_reals=[f'target_{i}' for i in range(1, 6)],
)
# Define the loss function
loss = [BCEWithLogitsLoss()] * len(dataset.target)
# Create the TFT model
model = TemporalFusionTransformer.from_dataset(
dataset,
hidden_size=16,
attention_head_size=1,
dropout=0.1,
hidden_continuous_size=8,
output_size=len(dataset.target), # Number of target columns
loss=loss, # Loss function
learning_rate=0.01,
)
print("Model created successfully!")
< /code>
Этот скрипт отлично работает с упрощенным набором данных.Errore durante la creazione del modello: 'int' object is not iterable
< /code>
Вот не работающий скрипт: < /p>
import numpy as np
import pandas as pd
from pytorch_forecasting import TimeSeriesDataSet, TemporalFusionTransformer
from torch.nn import BCEWithLogitsLoss
# Crea un dataset di prova con 5 colonne target
test_data = pd.DataFrame(
dict(
**{f'target_{i}': np.random.randint(0, 2, 30) for i in range(1,6)}, # 5 colonne target
group=np.repeat(np.arange(3), 10),
time_idx=np.tile(np.arange(10), 3),
)
)
# Configura il TimeSeriesDataSet
dataset = TimeSeriesDataSet(
test_data,
group_ids=["group"],
target=[f'target_{i}' for i in range(1,6)], # Lista di colonne target
time_idx="time_idx",
min_encoder_length=5,
max_encoder_length=5,
min_prediction_length=2,
max_prediction_length=2,
time_varying_unknown_reals=[f'target_{i}' for i in range(1, 6)],
)
# Verifica il numero di colonne target
print("Numero di colonne target:", len(dataset.target)) # Dovrebbe essere 5
# Crea il modello TFT
try:
model = TemporalFusionTransformer.from_dataset(
dataset,
hidden_size=16,
attention_head_size=1,
dropout=0.1,
hidden_continuous_size=8,
output_size=len(dataset.target), # Numero di colonne target
loss=[BCEWithLogitsLoss()] * len(dataset.target), # Una perdita per ciascuna colonna target
learning_rate=0.01,
)
print("Modello creato correttamente!")
except Exception as e:
print(f"Errore durante la creazione del modello: {e}")
< /code>
При запуске вышеуказанного скрипта я получаю следующую ошибку: < /p>
Error during model creation: 'int' object is not iterable
< /code>
Кроме того, я получаю следующие предупреждения: < /p>
Attribute 'loss' is an instance of `nn.Module` and is already saved during checkpointing. It is recommended to ignore them using `self.save_hyperparameters(ignore=['loss'])`.
Attribute 'logging_metrics' is an instance of `nn.Module` and is already saved during checkpointing. It is recommended to ignore them using `self.save_hyperparameters(ignore=['logging_metrics'])`.```
Environment:
• Python Version: 3.12
• PyTorch Forecasting Version: [1.3.0]
• PyTorch Lightning Version: [1.9.4]
Question:
How can I correctly configure the TemporalFusionTransformer for a multi-target prediction task with X one-hot encoded target columns ? Is there a specific way to define the loss parameter or handle multi-targets in this scenario?
Подробнее здесь: https://stackoverflow.com/questions/794 ... pytorch-fo
Проблема с многоцелевой конфигурацией во временном трансформаторе слияния (прогнозирование Pytorch) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблемы с конфигурацией log4j.properties вместе с конфигурацией муравья
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
«Аргументы ключевого слова {'min_length': 0} не распознаны». токенизатор в трансформаторе
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Решение .NET: как разрешаются зависимости проекта для многоцелевой сборки?
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-