tensorflow / probability

Probabilistic reasoning and statistical analysis in TensorFlow
https://www.tensorflow.org/probability/
Apache License 2.0
4.26k stars 1.1k forks source link

tf.keras and tfp.tfp.layers. are not compatible #1829

Open devspatron opened 3 months ago

devspatron commented 3 months ago

hello fellow developers, it appears that the tf.keras and tfp.tfp.layers. are not compatible i have this code=" *num_inducing_points = 40 model = tf.keras.Sequential([ tf.keras.layers.InputLayer(input_shape=[1], dtype=x.dtype), tf.keras.layers.Dense(1, kernel_initializer='ones', use_bias=False), tfp.layers.VariationalGaussianProcess( num_inducing_points=num_inducing_points, kernel_provider=RBFKernelFn(dtype=x.dtype), event_shape=[1], inducing_index_points_initializer=tf.constant_initializer( np.linspace(x_range, num=num_inducing_points, dtype=x.dtype)[..., np.newaxis]), unconstrained_observation_noise_variance_initializer=( tf.constant_initializer( np.log(np.expm1(1.)).astype(x.dtype))), ), ])

//Do inference. batch_size = 32 loss = lambda y, rv_y: rv_y.variational_loss( y, kl_weight=np.array(batch_size, x.dtype) / x.shape[0]) model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=loss) model.fit(x, y, batch_size=batch_size, epochs=1000, verbose=False)

//Make predictions. yhats = [model(xtst) for in range(100)]** "

and i get the following error output= "**:7: UserWarning: layer.add_variable is deprecated and will be removed in a future version. Please use the layer.add_weight() method instead. self._amplitude = self.add_variable(

:12: UserWarning: `layer.add_variable` is deprecated and will be removed in a future version. Please use the `layer.add_weight()` method instead. self._length_scale = self.add_variable( --------------------------------------------------------------------------- ValueError Traceback (most recent call last) [](https://localhost:8080/#) in () 1 num_inducing_points = 40 ----> 2 model = tf.keras.Sequential([ 3 tf.keras.layers.InputLayer(input_shape=[1], dtype=x.dtype), 4 tf.keras.layers.Dense(1, kernel_initializer='ones', use_bias=False), 5 tfp.layers.VariationalGaussianProcess( 1 frames [/usr/local/lib/python3.10/dist-packages/keras/src/models/sequential.py](https://localhost:8080/#) in add(self, layer, rebuild) 93 layer = origin_layer 94 if not isinstance(layer, Layer): ---> 95 raise ValueError( 96 "Only instances of `keras.Layer` can be " 97 f"added to a Sequential model. Received: {layer} " ValueError: Only instances of `keras.Layer` can be added to a Sequential model. Received: (of type )**"
UnVerano commented 2 months ago

ME either!! It was ok when i ran in August, but now it dosen't. Even though it was the same.. I got the same error w/ u