def __init__(self): # with tf.gfile.GFile(SHAPES3D_PATH, "rb") as f: # # Data was saved originally using python2, so we need to set the encoding. # data = np.load(f, encoding="latin1") # images = data["images"] # labels = data["labels"] # n_samples = np.prod(images.shape[0:6]) with h5py.File(SHAPES3D_PATH, 'r') as dataset: images = dataset['images'][()] labels = dataset['labels'][()] n_samples = images.shape[0] # with tf.gfile.GFile(SHAPES3D_PATH, "rb") as f: # data = pickle.load(f) # images = data["images"] # labels = data["labels"] # n_samples = images.shape[0] self.images = ( images.reshape([n_samples, 64, 64, 3]).astype(np.float32) / 255.) features = labels.reshape([n_samples, 6]) self.factor_sizes = [10, 10, 10, 8, 4, 15] self.latent_factor_indices = list(range(6)) self.num_total_factors = features.shape[1] self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)
def __init__(self, latent_factor_granularity=64): self.latent_factor_indices = list(range(6)) self.data_shape = [64, 64, 1] self.latent_factor_granularity = latent_factor_granularity self.factor_sizes = [latent_factor_granularity] * 6 self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices)
def __init__(self, mode="mpi3d_toy"): self.factor_sizes = [4, 4, 2, 3, 3, 40, 40] self.latent_factor_indices = [0, 1, 2, 3, 4, 5, 6] self.num_total_factors = 7 if mode == "mpi3d_toy": mpi3d_path = os.path.join( os.environ.get("DISENTANGLEMENT_LIB_DATA", "."), "mpi3d_toy", "mpi3d_toy.npz") if not tf.io.gfile.exists(mpi3d_path): raise ValueError( "Dataset '{}' not found. Make sure the dataset is publicly available and downloaded correctly." .format(mode)) else: with tf.io.gfile.GFile(mpi3d_path, "rb") as f: data = np.load(f) elif mode == "mpi3d_realistic": mpi3d_path = os.path.join( os.environ.get("DISENTANGLEMENT_LIB_DATA", "."), "mpi3d_realistic", "mpi3d_realistic.npz") if not tf.io.gfile.exists(mpi3d_path): raise ValueError( "Dataset '{}' not found. Make sure the dataset is publicly available and downloaded correctly." .format(mode)) else: with tf.io.gfile.GFile(mpi3d_path, "rb") as f: data = np.load(f) elif mode == "mpi3d_real": mpi3d_path = os.path.join( os.environ.get("DISENTANGLEMENT_LIB_DATA", "."), "mpi3d_real", "mpi3d_real.npz") if not tf.io.gfile.exists(mpi3d_path): raise ValueError( "Dataset '{}' not found. Make sure the dataset is publicly available and downloaded correctly." .format(mode)) else: with tf.io.gfile.GFile(mpi3d_path, "rb") as f: data = np.load(f) elif mode == "mpi3d_real_subset": self.factor_sizes = [2, 2, 2, 3, 3, 40, 40] mpi3d_path = os.path.join( os.environ.get("DISENTANGLEMENT_LIB_DATA", "."), "mpi3d_real", "mpi3d_real_subset.npz") if not tf.io.gfile.exists(mpi3d_path): raise ValueError( "Dataset '{}' not found. Make sure the dataset is publicly available and downloaded correctly." .format(mode)) else: with tf.io.gfile.GFile(mpi3d_path, "rb") as f: data = np.load(f) else: raise ValueError("Unknown mode provided.") self.images = data["images"] self.state_space = util.SplitDiscreteStateSpace(self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)
def __init__(self): self.images, features = _load_small_norb_chunks( SMALLNORB_TEMPLATE, SMALLNORB_CHUNKS) self.factor_sizes = [5, 10, 9, 18, 6] # Instances are not part of the latent space. self.latent_factor_indices = [0, 2, 3, 4] self.num_total_factors = features.shape[1] self.index = util.StateSpaceAtomIndex(self.factor_sizes, features) self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices)
def __init__(self): self.factor_sizes = [4, 24, 183] features = cartesian([np.array(list(range(i))) for i in self.factor_sizes]) self.latent_factor_indices = [0, 1, 2] self.num_total_factors = features.shape[1] self.index = util.StateSpaceAtomIndex(self.factor_sizes, features) self.state_space = util.SplitDiscreteStateSpace(self.factor_sizes, self.latent_factor_indices) self.data_shape = [64, 64, 3] self.images = self._load_data()
def __init__(self): with gfile.Open(CUSTOMDATA_PATH, "rb") as f: # load data data = np.load(file=f, allow_pickle=True) self.images = data["imgs"] self.data_shape = list(self.images.shape[1:]) # first dimension [dim0] is dataset size; as list [] because gaussian_encoder_model.py requires it self.factor_sizes = data["factor_sizes"] self.latent_factor_indices = list(range(len(self.factor_sizes))) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod(self.factor_sizes) self.state_space = util.SplitDiscreteStateSpace(self.factor_sizes, self.latent_factor_indices)
def __init__(self): base_path = Path(SHAPES3D_PATH) self.images_path = base_path/'images' self.factors_path = base_path/'factors' self.factor_sizes = [10, 10, 10, 8, 4, 15] self.latent_factor_indices = list(range(6)) self.num_total_factors = 6 self.state_space = util.SplitDiscreteStateSpace(self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)
def __init__(self): with h5py.File(SHAPES3D_PATH, 'r') as dataset: images = dataset['images'][:] labels = dataset['labels'][:] # images: shape [480000,64,64,3], uint8 in range(256) # labels: shape [480000,6], float64 self.images = images.astype('float32') / 255.0 self.factor_sizes = [10, 10, 10, 8, 4, 15] self.latent_factor_indices = list(range(6)) self.num_total_factors = labels.shape[1] self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)
def __init__(self): with h5py.File(SHAPES3D_PATH, 'r') as dataset: images = dataset['images'][()] labels = dataset['labels'][()] n_samples = images.shape[0] self.images = ( images.reshape([n_samples, 64, 64, 3]).astype(np.float16) / 255.) features = labels.reshape([n_samples, 6]) self.factor_sizes = [10, 10, 10, 8, 4, 15] self.latent_factor_indices = list(range(6)) self.num_total_factors = features.shape[1] self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)
def __init__(self, latent_factor_indices=None): # By default, all factors (including shape) are considered ground truth # factors. if latent_factor_indices is None: latent_factor_indices = list(range(6)) self.latent_factor_indices = latent_factor_indices self.data_shape = [64, 64, 3] # Load the data so that we can sample from it. with gfile.Open(DSPRITES_PATH, "rb") as data_file: # Data was saved originally using python2, so we need to set the encoding. data = np.load(data_file, encoding="latin1", allow_pickle=True) self.images = np.array(data["imgs"]) self.factor_sizes = np.array(data["metadata"][()]["latents_sizes"], dtype=np.int64) self.full_factor_sizes = [1, 3, 6, 40, 32, 32] self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes) self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices)
def __init__(self, latent_factor_indices=None): # By default, all factors (including shape) are considered ground truth # factors. if latent_factor_indices is None: latent_factor_indices = list(range(6)) self.latent_factor_indices = latent_factor_indices self.data_shape = [64, 64, 1] # Load the data so that we can sample from it. with gfile.Open( "/home/adarsh/Desktop/Disentangled-Representation-Learning-Playground/data/dsprites/dsprites_ndarray_co1sh3sc6or40x32y32_64x64.npz", "rb") as data_file: # Data was saved originally using python2, so we need to set the encoding. data = np.load(data_file, encoding="latin1", allow_pickle=True) self.images = np.array(data["imgs"]) self.factor_sizes = np.array(data["metadata"][()]["latents_sizes"], dtype=np.int64) self.full_factor_sizes = [1, 3, 6, 40, 32, 32] self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes) self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices)
def __init__(self, name): SHAPES3D_PATH = os.path.join( os.environ.get("DISENTANGLEMENT_LIB_DATA", "."), "3dshapes", name + ".h5") self.name = name with h5py.File(SHAPES3D_PATH, 'r') as dataset: images = dataset['images'][()] labels = dataset['labels'][()] n_samples = images.shape[0] self.data_size = n_samples self.images = ( images.reshape([n_samples, 64, 64, 3]).astype(np.float16) / 255.) features = labels.reshape([n_samples, 6]) self.labels = features self.factor_sizes = [10, 10, 10, 8, 4, 15] self.latent_factor_indices = list(range(6)) self.num_total_factors = features.shape[1] self.state_space = util.SplitDiscreteStateSpace( self.factor_sizes, self.latent_factor_indices) self.factor_bases = np.prod(self.factor_sizes) / np.cumprod( self.factor_sizes)