What would be the proper way of passing the PyTorch dictionary dataset to the TensorBoard add_graph(model, data).
May seems similar to the Question1, Qeustion2 and Question3, however, couldn't find the right way of handling with dictionary dataset.
Error Message
Dictionary inputs to traced functions must have consistent type. Found Tensor and List[str]
Error occurs, No graph saved
Below are my anonymized scripts of the project.
train.py
from torch.utils.tensorboard import SummaryWriter
from models import CustomModel
from datasets import CustomDataset
writer = SummaryWriter()
# Dataset
dataset = CustomDataset(params ...)
train_dataset = [dataset[i] for i in range(0, k)]
train_dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
# Model & TensorBoard
model = CustomModel(params....)
writer.add_graph(model, next(iter(train_dataloader))) # ---- HERE ----
datasets.py
class CustomDataset(Dataset):
def __init__(self, ...):
...
self.x_sequences = pad_sequence(x_sequences, batch_first=True, padding_value=0)
self.y_label = torch.LongTensor(label_list)
...
def __len__(self):
return len(self.y_label)
def __getitem__(self, index):
...
return {
"x_categoricals": self.x_categoricals[index],
"x_sequences": self.x_sequences[index],
"y_label": self.y_label[index],
"info": self.info[index],
}