reads files off disk, resizes them
        and then predicts them, files should
        be a list or itrerable of file paths
        that lead to images, they are then
        loaded with opencv, resized, and predicted

def predict_files(self, files):
        '''
        reads files off disk, resizes them
        and then predicts them, files should
        be a list or itrerable of file paths
        that lead to images, they are then
        loaded with opencv, resized, and predicted
        '''
        imgs = [0]*len(files)
        for i, file in enumerate(files):
            img = cv2.imread(file).astype('float64')
            img = cv2.resize(img, (224,224))
            img = preprocess_input(img)
            if img is None:
                print('failed to open: {}, continuing...'.format(file))
            imgs[i] = img
        return self.model.predict(np.array(imgs))