Ray tune error -ERROR trial_runner.py:1450

i am trying to find the HPO for rnn based model .this is a modular coding based project .complete code run in google colab after mounting the drive.for HPO ray tune is used but it gives an error .the code and error are given below:
Code :

def train_fnd(config):
model_rnn.to(device)
criterion = nn.BCELoss()
optimizer = optim.SDG(model_rnn.parameters(),lr=config[“lr”])
train_loader = dl.dataset(c.train_data_path,batch_size=config[“batch_size”])
val_loader = dl.dataset(c.val_data_path,batch_size=config[“batch_size”])

for epoch in range(10):
running_loss = 0.0
epoch_step = 0
for inputs,labels,inputs_len,_ in tqdm(train_loader):
labels = torch.tensor(labels,dtype=torch.float32).view(-1,1)
inputs = inputs.to(device)
labels = labels.to(device)
inputs_len = torch.IntTensor(inputs_len).to(device)

  # zero the parameter gradients
  optimizer.zero_grad()

  # forward + backward + optimize
  outputs = model_rnn(inputs,inputs_len)
  loss = criterion(outputs,labels)
  loss.backward()
  optimizer.step()

  #print statistics
  running_loss +=loss.item()
  
#validation loss
val_loss = 0.0
val_steps =0
total = 0
correct =0
for inputs,labels,inputs_len,_ in tqdm(val_loader):
  with torch.no_grad():
    labels = torch.tensor(labels,dtype=torch.float32).view(-1,1)
    inputs = inputs.to(device)
    labels = labels.to(device)
    inputs_len = torch.IntTensor(inputs_len).to(device)

    outputs = model_rnn(inputs,inputs_len)
    loss = criterion(outputs,labels)

    val_loss +=loss.item()
print("training loss :",running_loss/len(train_loader))
print("validation loss :",val_loss/len(val_loader))
session.report({"loss":(val_loss/len(val_loader))})

print(“finished training”)

def test(model_rnn):
test_loader =dl.dataset(data_path=c.test_data_path,batch_size=4)
correct = 0
total = 0
test_loss =0
criterion = nn.BCELoss()
with torch.no_grad():
for inputs,labels,inputs_len,_ in tqdm(test_loader):
labels = torch.tensor(labels,dtype=torch.float32).view(-1,1)
inputs = inputs.to(device)
labels = labels.to(device)
inputs_len = torch.IntTensor(inputs_len).to(device)
outputs = model_rnn(inputs,inputs_len)
loss = criterion(outputs,labels)

  test_loss +=loss.item()

return test_loss/len(test_loader)

def main (num_samples = 10,max_num_epochs =10,gpus_per_trial = 2):
config ={
“lr”:tune.loguniform(1e-4,1e-1),
“batch_size”:tune.choice([16,32,64])
}
scheduler = ASHAScheduler(
max_t=max_num_epochs,
grace_period=1,
reduction_factor=2)
tuner = tune.Tuner(
tune.with_resources(
tune.with_parameters(train_fnd),
resources = {“cpu”:2, “gpu”: gpus_per_trial}
),
tune_config = tune.TuneConfig(
metric=“loss”,
mode=“min”,
scheduler=scheduler,
num_samples=num_samples,
),
param_space=config,
)
results = tuner.fit()
best_result = results.get_best_result(“loss”,“min”)

main(num_samples=2, max_num_epochs=2, gpus_per_trial=0)

Error :

plz help me

No CUDA GPUs are available indicates that your script or environment has trouble using any GPUs so run a few smoke tests and make sure your system is able to use these.

PS: you can post code snippets by wrapping them into three backticks ``` which makes debugging easier.