def generate_continuous_variations(self, session, row_size, variations=3, iteration=None): categorical_noise = create_categorical_noise( self.categorical_cardinality, size=variations ) continuous_fixed = create_continuous_noise( num_continuous=self.num_continuous, style_size=self.style_size, size=variations ) linear_variation = np.linspace(-2.0, 2.0, row_size) images = [] for contig_idx in range(self.num_continuous): for var_idx in range(variations): continuous_modified = continuous_fixed[var_idx:var_idx+1, :].repeat( row_size, axis=0 ) # make this continuous variable vary linearly over the row: continuous_modified[:, contig_idx] = linear_variation z_c_vectors = encode_infogan_noise( self.categorical_cardinality, [cat[var_idx:var_idx+1].repeat(row_size, axis=0) for cat in categorical_noise], continuous_modified ) images.append( ( create_image_strip( self._generate(session, z_c_vectors), zoom=self._zoom, gutter=self._gutter ), "continuous variable %d, variation %d" % ( contig_idx, var_idx ) ) ) self._add_image_summary( session, images, iteration=iteration )
def generate_categorical_variations(self, session, row_size, iteration=None): images = [] continuous_noise = create_continuous_noise( num_continuous=self.num_continuous, style_size=self.style_size, size=row_size ) categorical_noise = create_categorical_noise( categorical_cardinality=self.categorical_cardinality, size=row_size ) for c_idx, cardinality in enumerate(self.categorical_cardinality): categorical_noise_modified = [sample.copy() for sample in categorical_noise] for i in range(cardinality): categorical_noise_modified[c_idx][:] = i z_c_vectors = encode_infogan_noise( categorical_cardinality=self.categorical_cardinality, categorical_samples=categorical_noise_modified, continuous_samples=continuous_noise ) # show a simpler name when there is only a single categorical # variable if len(self.categorical_cardinality) > 1: name = "categorical variable %d-%d" % (c_idx, i,) else: name = "category %d" % (i,) images.append( ( create_image_strip( self._generate(session, z_c_vectors), zoom=self._zoom, gutter=self._gutter ), name ) ) self._add_image_summary(session, images, iteration=iteration)