Search code examples
pythonnlphuggingface-transformerssimpletransformers

use_cuda is set True even though it was specified as False T5


I am trying to train a T5 model using simpletransformers. Here is my code:

from simpletransformers.t5 import T5Model
model_args = {
    "max_seq_length": MAX_LEN,
    "train_batch_size": 8,
    "eval_batch_size": 8,
    "num_train_epochs": 1,
    "evaluate_during_training": True,
    "evaluate_during_training_steps": 15000,
    "evaluate_during_training_verbose": True,
    
    "learning_rate": 1e-4,
    
    "evaluate_generated_text": True,
    
    "use_multiprocessing": False,
    "fp16": False,
    "use_cuda":False,
    
    "save_steps": -1,
    "save_eval_checkpoints": False,
    "save_model_every_epoch": False,
    "reprocess_input_data": True,
    "overwrite_output_dir": True,
    "wandb_project": None
}

model = T5Model('t5', 't5-base', args=model_args)

But I am getting this error:

ValueError: 'use_cuda' set to True when cuda is unavailable.Make sure CUDA is available or set `use_cuda=False`.

I have specified both use_cuda=False and fp16 =False, not sure why I am getting this error. I am running my code on Jupyter and I tried restarting the kernel and re-running the code but with no hope.


Solution

  • You need to pass in the arg use_cuda to the call to the T5Model constructor, not in your model_args dict.

    from simpletransformers.t5 import T5Model
    
    model_args = {...}
    
    model = T5Model('t5', 't5-base', args=model_args, use_cuda=False)