We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi everyone.
So I've tried to run the code with variational autoencoder, but there is an error like in title:
ValueError: A KerasTensor cannot be used as input to a TensorFlow function.
There is the code I'm trying to run (this code is from the book):
class Sampling(tf.keras.layers.Layer): def call(self, inputs): mean, log_var = inputs return tf.random.normal(tf.shape(log_var)) * tf.exp(log_var / 2) + mean tf.random.set_seed(42) # extra code – ensures reproducibility on CPU codings_size = 10 inputs = tf.keras.layers.Input(shape=[28, 28]) Z = tf.keras.layers.Flatten()(inputs) Z = tf.keras.layers.Dense(150, activation="relu")(Z) Z = tf.keras.layers.Dense(100, activation="relu")(Z) codings_mean = tf.keras.layers.Dense(codings_size)(Z) # μ codings_log_var = tf.keras.layers.Dense(codings_size)(Z) # γ codings = Sampling()([codings_mean, codings_log_var]) variational_encoder = tf.keras.Model( inputs=[inputs], outputs=[codings_mean, codings_log_var, codings]) decoder_inputs = tf.keras.layers.Input(shape=[codings_size]) x = tf.keras.layers.Dense(100, activation="relu")(decoder_inputs) x = tf.keras.layers.Dense(150, activation="relu")(x) x = tf.keras.layers.Dense(28 * 28)(x) outputs = tf.keras.layers.Reshape([28, 28])(x) variational_decoder = tf.keras.Model(inputs=[decoder_inputs], outputs=[outputs]) _, _, codings = variational_encoder(inputs) reconstructions = variational_decoder(codings) variational_ae = tf.keras.Model(inputs=[inputs], outputs=[reconstructions]) latent_loss = -0.5 * tf.reduce_sum( 1 + codings_log_var - tf.exp(codings_log_var) - tf.square(codings_mean), axis=-1)
IDE suggests me to wrap this into the layer, and I've tried it but it still cannot work. There is my attempt to create this wrap.
class LatentLoss(keras.losses.Layer): def call(self, inputs): codings_mean, codings_log_var = inputs return -0.5 * tf.reduce_sum( 1 + codings_log_var - tf.exp(codings_log_var) - tf.square(codings_mean), axis=-1 )
The text was updated successfully, but these errors were encountered:
Okay, I see now that the code from book is for Keras 2. , my bad. But I'm very interesting how would it work with Keras 3. .
Sorry, something went wrong.
No branches or pull requests
Hi everyone.
So I've tried to run the code with variational autoencoder, but there is an error like in title:
ValueError: A KerasTensor cannot be used as input to a TensorFlow function.
There is the code I'm trying to run (this code is from the book):
IDE suggests me to wrap this into the layer, and I've tried it but it still cannot work. There is my attempt to create this wrap.
The text was updated successfully, but these errors were encountered: