Я пытаюсь обучить конформную модель на аудиоданных и постоянно получаю следующую ошибку.
"ValueError: невозможно создать тензор, возможно, вам следует активировать усечение и/или заполнение с 'padding=True' 'truncation=True', чтобы иметь пакетные тензоры одинаковой длины. Возможно, ваши функции (.
в данном случае) имеют чрезмерную вложенность (список входных типов, где ожидается тип int)."
Хотя я активировал усечение и заполнение значения True в функции DataCollator и в функцияхprepree_dataset, как показано ниже, проблема сохраняется.
DataCollator:
def __call__(self, features: List[Dict[str, Union[List[int], torch.Tensor]]]) -> Dict[str, torch.Tensor]:
if not features:
return {}
# split inputs and labels since they have to be of different lenghts and need
# different padding methods
input_features = [{"input_values": feature["input_values"]} for feature in features]
label_features = [{"input_ids": feature["labels"]} for feature in features]
batch = self.processor.pad(
input_features,
padding=self.padding,
max_length=self.max_length,
truncation=True, # added truncation parameter
pad_to_multiple_of=self.pad_to_multiple_of,
return_tensors="pt",
)
with self.processor.as_target_processor():
labels_batch = self.processor.pad(
label_features,
padding=self.padding,
max_length=self.max_length_labels,
pad_to_multiple_of=self.pad_to_multiple_of_labels,
return_tensors="pt",
)
# replace padding with -100 to ignore loss correctly
labels = labels_batch["input_ids"].masked_fill(labels_batch.attention_mask.ne(1), -100)
batch["labels"] = labels
return batch
Я пытаюсь обучить конформную модель на аудиоданных и постоянно получаю следующую ошибку. "ValueError: невозможно создать тензор, возможно, вам следует активировать усечение и/или заполнение с 'padding=True' 'truncation=True', чтобы иметь пакетные тензоры одинаковой длины. Возможно, ваши функции (.[code]input_ids[/code] в данном случае) имеют чрезмерную вложенность (список входных типов, где ожидается тип int)." Хотя я активировал усечение и заполнение значения True в функции DataCollator и в функцияхprepree_dataset, как показано ниже, проблема сохраняется. DataCollator: [code]def __call__(self, features: List[Dict[str, Union[List[int], torch.Tensor]]]) -> Dict[str, torch.Tensor]: if not features: return {} # split inputs and labels since they have to be of different lenghts and need # different padding methods input_features = [{"input_values": feature["input_values"]} for feature in features] label_features = [{"input_ids": feature["labels"]} for feature in features]
#speech_tensors = [torch.tensor(s["array"]) for s in speech] speech_tensors = [] for s in speech: tensor = torch.tensor(s["array"])[:MAX_SPEECH_LENGTH] if isinstance(s, dict) else torch.zeros((1,)) speech_tensors.append(tensor)