device = torch.device("cpu")
    print("cpu mode")

# the name of results files
codename = 'ad_ac_example'
fnnname = codename + "_fnn_model"
total_loss_name = codename + "_total_loss"
acc_name = codename + "_accuracy"
soft_loss_name = codename + "_softmax_loss"
ad_disc_loss_name = codename + "_adaptivediscriminant_loss"
ad_cen_loss_name = codename + "_adaptivecenter_loss"
result_name = codename + "_result"

# load the data set
instance_datasets = Datasets(DATASET, BATCH_SIZE, NUM_WORKERS)
data_sets = instance_datasets.create()

trainloader = data_sets[0]
testloader = data_sets[1]
classes = data_sets[2]
based_labels = data_sets[3]
trainset = data_sets[4]
testset = data_sets[5]

# network and criterions
model = Net(FEATURE, OUTPUTS).to(device)

optimizer = optim.SGD(model.parameters(),
                      lr=LEARNING_RATE,
                      momentum=MOMENTUM,
                      weight_decay=WEIGHT_DECAY)