Normalement, l '** image générée par le modèle GAN entraîné ** est un mélange de ** images préférées, d'images que vous n'aimez pas et d'images cassées **, et ne peut pas être visualisée telle quelle. ** Par conséquent, cette fois, je vais vous présenter comment changer facilement l'image générée de GAN ** en une image de haute qualité à votre goût **.
Le modèle entraîné de GAN utilisé cette fois est ** TF-Hub Progressive GAN **. Le code a été créé avec ** Goole colab ** et publié sur ** Github ** (** lien ici ** )) Donc, si vous le souhaitez, veuillez jouer avec tout en prenant un verre.
Le modèle GAN formé ne peut pas être modifié car ** le vecteur d'entrée et l'image de sortie sont déjà déterminés sur une base un-à-un **. Alors que devons-nous faire. Modifiez le vecteur d'entrée.
Lorsqu'un vecteur aléatoire est entré dans le modèle GAN et qu'une image est générée, s'il y a une ** image cassée ou une image que vous n'aimez pas **, le vecteur correspondant est accumulé dans le ** vecteur moins **, et ** votre préférence. S'il existe une image ** de, le vecteur correspondant est stocké dans ** plus vecteur **.
Ensuite, le prochain vecteur à entrer dans le modèle GAN est ** vecteur aléatoire + moyenne de la moyenne vectorielle plus du vecteur moins **. En répétant cela, mystérieusement, l'image générée de GAN sera ** transformée en une image de haute qualité à votre goût **.
Tout d'abord, installez et importez la bibliothèque, définissez les fonctions et téléchargez le modèle. Voir google colab pour plus de détails.
Tout d'abord, initialisez-le.
#Initialisation de l'apprentissage
tf.random.set_seed(80)
vectors = tf.zeros([5,512])
plus_vector = tf.zeros([1,512])
minus_vector = tf.zeros([1,512])
Étant donné que la ** fonction Form ** de google colab est utilisée, le code ne peut pas être vu dans l'état initial, mais vous pouvez voir le code en cliquant sur l'interface utilisateur. L'état initial est plus facile à utiliser.
#@title please, you change the selected action if you need.
vec_0 = 'nothing' #@param ['plus', 'nothing', 'minus']
vec_1 = 'nothing' #@param ['plus', 'nothing', 'minus']
vec_2 = 'nothing' #@param ['plus', 'nothing', 'minus']
vec_3 = 'nothing' #@param ['plus', 'nothing', 'minus']
vec_4 = 'nothing' #@param ['plus', 'nothing', 'minus']
vec = [vec_0, vec_1, vec_2, vec_3, vec_4]
for i in range(len(vectors)):
if vec[i] == 'plus':
plus_vector = tf.concat([plus_vector, tf.reshape(vectors[i],[1,512])],axis=0)
if vec[i] == 'minus':
minus_vector = tf.concat([minus_vector, tf.reshape(vectors[i],[1,512])], axis=0)
print('number of plus_vector = ', len(plus_vector)-1)
print('number of minus_vector = ', len(minus_vector)-1)
plus_vector_mean = tf.reduce_mean(plus_vector, axis=0) # plus_Prenez la moyenne du vecteur
minus_vector_mean = tf.reduce_mean(minus_vector, axis=0) # minus_Prenez la moyenne du vecteur
vectors = tf.random.normal([5, 512]) #Acquisition de vecteurs aléatoires
vectors = vectors + plus_vector_mean - minus_vector_mean #Correction vectorielle
display_images(vectors)
En raison de la ** fonction Form **, les variables ** vec_0 à vec_4 ** contiendront la chaîne ** ('plus', 'rien', 'moins') sélectionnée dans l'interface utilisateur. Si la chaîne est ** 'plus' **, le vecteur correspondant est stocké dans ** plus_vector **, et s'il est ** 'minus' **, le vecteur correspondant est stocké dans ** minus_vector **. Tout ce que vous avez à faire maintenant est de prendre la moyenne avec tf.reduce_mean ()
et d'ajouter ou de soustraire du vecteur aléatoire.
** La première fois que vous exécutez le code sans modifier aucun paramètre **. ** À partir de la deuxième fois **, regardez les 5 images générées, et à votre propre discrétion ** s'il faut mettre le vecteur moins ** (moins), ** s'il faut mettre le vecteur plus ** (plus), ** quoi Décidez s'il y a ** (rien), ** modifiez les paramètres **, puis ** exécutez le code **. Répétez cela plusieurs fois.
Ce qui s'affiche est le résultat d'essayer une douzaine de fois. L'interface utilisateur s'exécute dans son état initial. Ceci est le résultat de la sélection de 5 vecteurs plus (femelle de votre choix) et 8 vecteurs moins (image brisée). Certes, il n'y a que des femmes qui aiment ça (rires).