Commit 85de04c9 authored by Clement Wang's avatar Clement Wang
Browse files

LE SITE ARRIVE EN FORCE, il reste plus qu'à rendre ça un peu plus sexy

parent e0243f76
# Animal generator
# Animal generator
Ce repo ne sert qu'à implémenter un site pour le générateur d'animaux mignons. Pour l'instant, le modèle a été généré sur colab. Il pourra être amélioré plus tard avec Pro GAN ou Style GAN.
Ce repo ne sert qu'à implémenter un site pour le générateur d'animaux mignons. Pour l'instant, le modèle a été généré sur colab. Il pourra être amélioré plus tard avec Pro GAN ou Style GAN.
Le projet consiste à générer des photos d'animaux mignons, pour l'instant des chats, avec un GAN. On utilise pour cela des resnet géants. Ping @Arkheva / Clement pour plus d'info, j'ai la flemme de tout décrire là.
Le projet consiste à générer des photos d'animaux mignons, pour l'instant des chats, avec un GAN. On utilise pour cela des resnet géants. Ping @Arkheva / Clement pour plus d'info, j'ai la flemme de tout décrire là.
Si vous êtes là pour utiliser tf sur un site, lisez le README_PLS_IF_YOU_DONT_WANNA_WASTE_TIME.txt, ça résume assez bien les galères que j'ai eues au début.
Pour l'instant, le site est minimaliste, mais fonctionne au moins. La génération de chat se fait quasiment instantanément pour une image de chat.
A ceux qui voudraient reprendre le projet, il doit être assez simple de faire mieux sur le réseau parce que j'ai choisi une loss un peu bizarre, c'était mon premier projet, pardonnez-moi ;)
Je serais ravi de passationner ce projet si des gens veulent.
\ No newline at end of file
pour réussir à servir un site :
ATTENTION A COMMENT GENERER LE MODEL JS :
télécharger TOUT le modèle et pas juste les poids sous fichier h5 (sous python) :
model.save("./generator.h5")
ensuite convertir à tf js avec :
pip install tensorflowjs (si pas importé)
tensorflowjs_converter --input_format=keras "path vers le fichier h5" ./model
ENSUITE IMPORTER LE MODEL COMME DANS LE CODE INDEX.HTML
APRES S'IL Y A UNE ERREUR DU GENRE ERREUR DE CONVERTION PCQ PYTHON MACHIN
ALLER DANS MODEL.JSON
CHERCHER "Functionnal" ET REMPLACER PAR "Model"
\ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Cat Generator</title>
</head>
<body>
<button type="button">Generate a cat !</button>
<p> Pas de click </p>
<div id="x"></div>
<canvas id="myCanvas" width="64" height="64" style="border: 1px solid red ; width: 100px; height: 100px;"></canvas>
</body>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>
<script>
var btn = document.querySelector('button');
var txt = document.querySelector('p');
var nb_click = 0;
tf.loadLayersModel('./generator/model.json').then(function(model) {
generator = model;
});; // cf internet
btn.addEventListener('click', updateBtn);
function updateBtn() {
nb_click += 1;
txt.textContent = 'Tu as cliqué '+ nb_click +' fois !';
/*
var img = document.createElement("img");
img.src = "cat_10000.png";
var div = document.getElementById("x");
div.appendChild(img);
*/
generate(generator);
}
function generate(model) {
const latent_dim = 128 + 34 ;
var noise = tf.randomNormal([1,latent_dim]);
//model.summary();
image = model.predict(noise, {batchSize: 1});
//image.print();
image = image.add(1);
//image.print();
image = tf.mul(image,tf.scalar(127.5));
var cast = image.asType('int32');
var array = cast.arraySync();
//console.log(array);
//console.log(array[0]);
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var imageData = array[0];
for(var y = 0; y < imageData.length; y++){
for(var x = 0; x < imageData[y].length; x++){
ctx.fillStyle = `rgb(${imageData[y][x][0]}, ${imageData[y][x][1]}, ${imageData[y][x][2]})`;
ctx.fillRect( x,y, 1, 1);
}
}
}
</script>
</html>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment