probability icon indicating copy to clipboard operation
probability copied to clipboard

layer.add_variable is deprecated

Open ThexXTURBOXx opened this issue 1 year ago • 0 comments

I am currently trying to implement a Bayesian Neural Network for image classification. However, two warnings are raised:

/usr/local/lib/python3.10/dist-packages/tensorflow_probability/python/layers/util.py:95: UserWarning: `layer.add_variable` is deprecated and will be removed in a future version. Please use the `layer.add_weight()` method instead.
  loc = add_variable_fn(
/usr/local/lib/python3.10/dist-packages/tensorflow_probability/python/layers/util.py:105: UserWarning: `layer.add_variable` is deprecated and will be removed in a future version. Please use the `layer.add_weight()` method instead.
  untransformed_scale = add_variable_fn(

I am currently using the following code:

    bayesian_model = Sequential([
        tfpl.Convolution2DReparameterization(input_shape=(512, 512, 1), filters=8, kernel_size=16, activation='relu',
                                             kernel_prior_fn=tfpl.default_multivariate_normal_fn,
                                             kernel_posterior_fn=tfpl.default_mean_field_normal_fn(is_singular=False),
                                             kernel_divergence_fn=divergence_fn,
                                             bias_prior_fn=tfpl.default_multivariate_normal_fn,
                                             bias_posterior_fn=tfpl.default_mean_field_normal_fn(is_singular=False),
                                             bias_divergence_fn=divergence_fn),
        Conv2D(kernel_size=(5, 5), filters=8, activation='relu', padding='VALID'),
        MaxPooling2D(pool_size=(6, 6)),
        Flatten(),
        Dropout(0.2),
        tfpl.DenseReparameterization(units=tfpl.OneHotCategorical.params_size(3), activation=None,
                                     kernel_prior_fn=tfpl.default_multivariate_normal_fn,
                                     kernel_posterior_fn=tfpl.default_mean_field_normal_fn(is_singular=False),
                                     kernel_divergence_fn=divergence_fn,
                                     bias_prior_fn=tfpl.default_multivariate_normal_fn,
                                     bias_posterior_fn=tfpl.default_mean_field_normal_fn(is_singular=False),
                                     bias_divergence_fn=divergence_fn
                                     ),
        tfpl.OneHotCategorical(3)
    ])

    bayesian_model.compile(loss=negative_log_likelihood,
                           optimizer=Adam(learning_rate=0.005),
                           metrics=['accuracy'],
                           experimental_run_tf_function=False)

ThexXTURBOXx avatar Mar 04 '23 09:03 ThexXTURBOXx