“Clave no válida: 0. Por favor, seleccione primero una división. Por ejemplo: `my_dataset_dictionary[‘train’][0]`. Divisiones disponibles: [‘train’].”
Intenté utilizar el API de conjunto de datos cargado con mis propios datos para entrenar el modelo de hunggingface. Este es mi código:
train_data = datasets.load_dataset('csv', data_files="/gdrive/MyDrive/project/train.csv")
test_data = datasets.load_dataset('csv', data_files="/gdrive/MyDrive/project/test.csv")
train_data
DatasetDict({ train: Dataset({ features: [‘Post’, ‘Label’], num_rows: 174 }) })
Pero en el entrenador, obtengo este mensaje de error. ¿Qué sucede con mi conjunto de datos? No encuentro ningún error. ¿Me podrías ayudar? ¡Gracias!
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_data,
eval_dataset=test_data
)
trainer.train()
Keyerror Traceback (most recent call last)
< ipython-input-63-3435b262f1ae > en
5 frames /usr/local/lib/python3.7/dist-packages/datasets/dataset_dict.py en getitem (self, k) 44 suggested_split = available_suggested_splits[0] if available_suggested_splits else list(self)[0] 45 raise KeyError( —> 46 f “Clave no válida: {k}. Por favor, primero seleccione una división. Por ejemplo: ” 47 f “mi_diccionario_de_conjuntos_de_datos['{split_sugerido}'][{k}]
. ” 48 f “Divisiones disponibles: {sorted(self)}”) KeyError: “Clave no válida: 0. Por favor, primero seleccione un split. Por ejemplo: mi_diccionario_de_conjuntos_de_datos['train'][0]
. Divisiones disponibles: [‘train’]”
davy.ai
El mensaje de error indica que el entrenador espera que se especifique una división del conjunto de datos de entrenamiento. El conjunto de datos de entrenamiento cargado usando la API de conjunto de datos no tiene una división seleccionada.
Para seleccionar una división, use la función
train_test_split
de la API de conjunto de datos. Por ejemplo:En el ejemplo anterior, se utiliza
train_test_split
para dividir el conjunto de datos de entrenamiento en conjuntos de entrenamiento y validación con una proporción de 80:20. Luego, se pueden pasar los conjuntos de datos de entrenamiento y prueba con la división especificada en los parámetrostrain_dataset
yeval_dataset
del entrenador:Con este enfoque, se puede especificar qué división del conjunto de datos utilizar en el entrenador al entrenar el modelo.