コード例 #1
0
class DatasetManagement:
    def __init__(self):
        """
        Classe per gestire la copia dei dati da una forma
        /dataset/class1/
        /dataset/class1/test
        To
        /train/class1
        test/class2
        """
        #variabile dove si trova il dataset
        self.data_dir = "/Users/Eric/Desktop/eric/Programmazione/python/DeepLearning/data/knifey-spoony"
        #Url dove posso scaricare un dataset
        self.data_url = "https://github.com/Hvass-Labs/knifey-spoony/raw/master/knifey-spoony.tar.gz"
        #path della cartella di train
        self.train_dir = os.path.join(self.data_dir, "train/")
        #path della cartella di test
        self.test_dir = os.path.join(self.data_dir, "test/")
        #dimensione immagine
        self.image_size = 200
        #canali immagine
        self.num_channels = 3
        self.img_shape = [self.image_size, self.image_size, self.num_channels]
        self.img_size_flat = self.image_size * self.image_size * self.num_channels
        #numero di classi del dataset
        self.num_classes = 3
        self.download = Download()

    def load(self):
        pass

    def execute(self):

        #gestione caricamento dataset da internet o da locale

        #scarica il dataset da internet se non è presente
        self.download.maybe_downlaod_and_extract(url=self.data_url,
                                                 download_dir=self.data_dir)

        # crea l'istanza del dataset
        cache_path = os.path.join(self.data_dir, "knifey-spoony.pkl")

        self.dataset = load_cached(cache_path=cache_path, in_dir=self.data_dir)

        #divide i dati in test e train secondo le classi pronti per essere processati

        self.dataset.copy_files(train_dir=self.train_dir,
                                test_dir=self.test_dir)