es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“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 () 1 trainer.train()
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’]”

Tags:  ,

Answer

  1. Avatar for 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:

    from datasets import load_dataset, DatasetDict, Dataset
    train_data = load_dataset('csv', data_files="/gdrive/MyDrive/project/train.csv")
    test_data = load_dataset('csv', data_files="/gdrive/MyDrive/project/test.csv")
    train_data, test_data = train_test_split(train_data, test_size=0.2)
    

    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ámetros train_dataset y eval_dataset del entrenador:

    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=train_data['train'],
        eval_dataset=test_data['train']
    )
    trainer.train()
    

    Con este enfoque, se puede especificar qué división del conjunto de datos utilizar en el entrenador al entrenar el modelo.

Comments are closed.