J'essaye d'implémenter un autoencoder variationnel en utilisant python et tensorflow. J'ai vu diverses implémentations sur internet. J'ai réussi à créer le mien en utilisant les différentes parties que j'ai trouvées et les ai fait fonctionner avec mon cas spécifique. je conclus avec un autoencoder ici: my autoncoder on gitimplémentation variationnelle autoencoder
Brièvement I ont un autoencoder qui contient:
1) un codeur avec 2 couches de convolution et une couche d'aplatir,
2) l'espace latent (de la dimension 2),
3) et un décodeur avec les parties inverses du codeur.
Mon problème est lorsque j'essaie d'implémenter la partie variationnelle de l'autoencoder. J'entends par là la procédure mathématique dans l'espace latent. Atleast c'est là que j'identifie le problème.
Pour être plus clair, j'ai les 2 cas suivants:
Cas 1: Sans mettre en œuvre effectivement des mathématiques variationnelles, tout simplement définir les variables dans l'espace latent et les nourrir dans le décodeur sans mathématiques Dans ce cas, la fonction de coût est juste la différence entre l'entrée et la sortie. Vous pouvez voir le code pour ce cas dans ces chiffres sur le git (désolé de ne pas pouvoir envoyer plus de liens): figure1_code_part1.png, figure1_code_part2.png
Case2: Essayer de mettre en œuvre les mathématiques dans les variables latentes espace . Vous pouvez voir le code pour ce cas dans ces chiffres: figure_2_code_part1.png, figure_2_code_part2.png
L'intrigue de l'espace latent que je reçois dans chacun des cas est: figure_1.png figure_2.png
Je pense que quelque chose ne va pas dans la mise en œuvre variationnelle, mais je ne sais pas quoi. Tous ceux qui implémentent l'encodeur automatique variationnel utilisent ces formules mathématiques (au moins celles que j'ai trouvées sur Internet). Probablement, il me manque quelque chose.
Tous les commentaires/suggestions sont les bienvenus. Merci !!!