from __future__ import print_function
import os,sys,inspect

currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(os.path.dirname(currentdir))
sys.path.insert(0,parentdir)

from utils.args import args

import setup.categories.ae_setup as AESetup
from models.autoencoders import *
from datasets.DRD import DRD

if __name__ == "__main__":
    dataset = DRD(root_path=os.path.join(args.root_path, "diabetic-retinopathy-detection"), downsample=64)
    model = ALILikeVAE(dims=(3, 64, 64))
    AESetup.train_variational_autoencoder(args, model=model, dataset=dataset.get_D1_train(), BCE_Loss=True)

        'knn/4',
        'knn/8',
        'vaemseaeknn/1',
        'vaebceaeknn/1',
        'mseaeknn/1',
        'bceaeknn/1',
        'vaemseaeknn/8',
        'vaebceaeknn/8',
        'mseaeknn/8',
        'bceaeknn/8',
        #'alivaemseaeknn/1', 'alivaebceaeknn/1', 'alimseaeknn/1', 'alibceaeknn/1',
        #'alivaemseaeknn/8', 'alivaebceaeknn/8', 'alimseaeknn/8', 'alibceaeknn/8',
    ]

    D1 = DRD(root_path=os.path.join(args.root_path,
                                    'diabetic-retinopathy-detection'),
             downsample=224)
    D164 = DRD(root_path=os.path.join(args.root_path,
                                      "diabetic-retinopathy-detection"),
               downsample=64)

    args.D1 = 'DRD'

    All_ODs = [
        'UniformNoise',
        'NormalNoise',
        'MNIST',
        'FashionMNIST',
        'NotMNIST',
        'CIFAR100',
        'CIFAR10',