tensorflow2-generative-models icon indicating copy to clipboard operation
tensorflow2-generative-models copied to clipboard

AttributeError: 'VAEGAN' object has no attribute 'D_prop'

Open mmohenska opened this issue 1 year ago • 1 comments

Hi there,

I have tried running this code and I cannot get past the create model step, I've pasted the error below. Please let me know if you need more information.

Thanks!

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[32], line 6
      3 disc_optimizer = tf.keras.optimizers.RMSprop(1e-3)
      5 # model
----> 6 model = VAEGAN(
      7     enc = encoder,
      8     dec = decoder,
      9     vae_disc_function = vaegan_discrim,
     10     lr_base_gen = 1e-3, # 
     11     lr_base_disc = 1e-4, # the discriminator's job is easier than the generators so make the learning rate lower
     12     latent_loss_div=1, # this variable will depend on your dataset - choose a number that will bring your latent loss to ~1-10
     13     sig_mult = 10, # how binary the discriminator's learning rate is shifted (we squash it with a sigmoid)
     14     recon_loss_div = .001, # this variable will depend on your dataset - choose a number that will bring your latent loss to ~1-10
     15 )

Cell In[29], line 19, in VAEGAN.__init__(self, **kwargs)
     17 self.enc_optimizer = tf.keras.optimizers.Adam(self.lr_base_gen, beta_1=0.5)
     18 self.dec_optimizer = tf.keras.optimizers.Adam(self.lr_base_gen, beta_1=0.5)
---> 19 self.disc_optimizer = tf.keras.optimizers.Adam(self.get_lr_d, beta_1=0.5)

File ~/miniconda3/envs/spatial_3_10/lib/python3.10/site-packages/keras/optimizers/optimizer_experimental/adam.py:116, in Adam.__init__(self, learning_rate, beta_1, beta_2, epsilon, amsgrad, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, jit_compile, name, **kwargs)
     86 def __init__(
     87     self,
     88     learning_rate=0.001,
   (...)
    102     **kwargs
    103 ):
    104     super().__init__(
    105         name=name,
    106         weight_decay=weight_decay,
   (...)
    114         **kwargs
    115     )
--> 116     self._learning_rate = self._build_learning_rate(learning_rate)
    117     self.beta_1 = beta_1
    118     self.beta_2 = beta_2

File ~/miniconda3/envs/spatial_3_10/lib/python3.10/site-packages/keras/optimizers/optimizer_experimental/optimizer.py:378, in _BaseOptimizer._build_learning_rate(self, learning_rate)
    370     self._current_learning_rate = tf.Variable(
    371         current_learning_rate,
    372         name="current_learning_rate",
    373         dtype=current_learning_rate.dtype,
    374         trainable=False,
    375     )
    376     return learning_rate
--> 378 return tf.Variable(
    379     learning_rate,
    380     name="learning_rate",
    381     dtype=backend.floatx(),
    382     trainable=False,
    383 )

File ~/miniconda3/envs/spatial_3_10/lib/python3.10/site-packages/tensorflow/python/util/traceback_utils.py:153, in filter_traceback.<locals>.error_handler(*args, **kwargs)
    151 except Exception as e:
    152   filtered_tb = _process_traceback_frames(e.__traceback__)
--> 153   raise e.with_traceback(filtered_tb) from None
    154 finally:
    155   del filtered_tb

Cell In[29], line 30, in VAEGAN.get_lr_d(self)
     29 def get_lr_d(self):
---> 30     return self.lr_base_disc * self.D_prop

AttributeError: 'VAEGAN' object has no attribute 'D_prop'

mmohenska avatar Mar 06 '23 19:03 mmohenska

Hi @mmohenska, I encountered the same issue. Have you resolved it? Many thannks

Jason5507 avatar Aug 20 '23 22:08 Jason5507