Untitled
unknown
plain_text
a year ago
2.0 kB
1
Indexable
Never
Đây là một mô hình VAE (Variational Autoencoder) đơn giản được xây dựng bằng TensorFlow. Mô hình này sử dụng một kiến trúc đơn giản với các lớp fully connected layers. ```python import tensorflow as tf from tensorflow.keras import layers # Hàm xây dựng mô hình Encoder def build_encoder(input_dim, latent_dim): inputs = tf.keras.Input(shape=(input_dim,)) x = layers.Dense(256, activation='relu')(inputs) x = layers.Dense(128, activation='relu')(x) mean = layers.Dense(latent_dim)(x) log_var = layers.Dense(latent_dim)(x) return tf.keras.Model(inputs, [mean, log_var], name='encoder') # Hàm xây dựng mô hình Decoder def build_decoder(output_dim, latent_dim): inputs = tf.keras.Input(shape=(latent_dim,)) x = layers.Dense(128, activation='relu')(inputs) x = layers.Dense(256, activation='relu')(x) outputs = layers.Dense(output_dim, activation='sigmoid')(x) return tf.keras.Model(inputs, outputs, name='decoder') # Hàm xây dựng mô hình VAE def build_vae(input_dim, latent_dim): encoder = build_encoder(input_dim, latent_dim) decoder = build_decoder(input_dim, latent_dim) inputs = tf.keras.Input(shape=(input_dim,)) mean, log_var = encoder(inputs) z = tf.random.normal(shape=(latent_dim,)) sampled_z = mean + tf.exp(0.5 * log_var) * z outputs = decoder(sampled_z) vae = tf.keras.Model(inputs, outputs, name='vae') return vae # Xây dựng mô hình VAE với các thông số đầu vào input_dim = 784 # Kích thước đầu vào (28x28 pixels) latent_dim = 32 # Kích thước không gian tiềm ẩn vae = build_vae(input_dim, latent_dim) vae.summary() ``` Trong ví dụ trên, `build_encoder` xây dựng mô hình encoder với các lớp fully connected layers. `build_decoder` xây dựng mô hình decoder cũng với các lớp fully connected layers. Cuối cùng, `build_vae` xây dựng mô hình VAE bằng cách kết hợp encoder và decoder.