| <html> | |
| <head> | |
| <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script> | |
| </head> | |
| <body> | |
| Make sure to run this via a server | |
| <br> | |
| <input accept="image/*" type='file' id="input_button" /> | |
| <br> | |
| <img id="img1" src="./image.jpg" style="width: 300px " /> | |
| <br> <br> | |
| <button onclick="predict()">predict</button> | |
| <br> | |
| <p id="result"> </p> | |
| <script> | |
| let image = document.getElementById('img1'); | |
| let input_button = document.getElementById('input_button'); | |
| input_button.onchange = evt => { | |
| const [file] = input_button.files | |
| if (file) { | |
| image.src = URL.createObjectURL(file) | |
| } | |
| } | |
| async function predict() { | |
| var model = await tf.loadGraphModel('./model.json'); | |
| let example = tf.browser.fromPixels(document.getElementById("img1") , 3 ).cast('float32'); | |
| console.log( example.shape ) | |
| example = example.reshape([1,example.shape[0], example.shape[1] ,example.shape[2]]); | |
| let prediction = await model.predict(example); | |
| let class_scores = await prediction.data(); | |
| let max_score_id = class_scores.indexOf(Math.max(...class_scores)); | |
| let classes = [ "amina mostafa2024020001" , "misaa babnjki2024020002" , ] ; | |
| console.log(class_scores); | |
| document.getElementById("result").innerHTML = classes[max_score_id].toString(); | |
| } | |
| </script> | |
| </body> | |
| </html> |