04. tensorflow español

04.-TensorFlow js en Español?? [Manejo de Memoria]

04. %2Btensorflow%2Bespa%25C3%25B1ol

Introducción

En este tutorial vamos a trabajar con la memoria de nuestra aplicación (y si debemos cuidar la memoria) que aunque no es la memoria de nuestro servidor es la memoria del navegador del cliente, en otras palabras que es el navegador del cliente el que tenemos que cuidar. Imaginemos este escenario: Tenemos un cliente visitando nuestra pagina web la cual trabaja con tensorflow y ademas esta navegado con google chrome (tomemos en cuenta que chrome consume mucha memoria), ademas tenemos a tensorflow el cual realiza operaciones complejas, por si fuera poco esta webgl que es una librería de gráficos en 3D. Al final tenemos una bomba para el navegador y provocar que nuestra pagina web se llegue a caer al consumir muchos recursos. Para evitar estos problemas nuestros amigos de tensorflow nos entregan algunas funciones de control y manejo de memoria RAM y es una especie de Garbage colector algo así como el Garbage colector de JAVA. Este un pequeño programa que revisaba constantemente la memoria ram de objetos que ya no se ocupaban. Tensor flow nos entregan una funciones de garbage colector. En otras palabras los tensores que ya no estemos ocupando los podemos desechar de forma manual-automático.

Codigo

<!DOCTYPE html>
<html>
    <head>
        <link rel="shortcut icon" href="favicon.ico">
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/addons/p5.dom.js"></script>
    </head>
    <body>
        <script>
            function draw() {
                const val = [];
                for (i = 0; i < 30; i++) {
                    val[i] = Math.random(1, 100) * 100;
                }
                tf.tidy(() => {
                    const tens = tf.tensor3d(val, [5, 3, 2], "int32");
                    //tens.print();
                    //console.log(tens.data());
                    /*
                     tens.data().then(function (res) {
                     console.log(res[2]);
                     });
                     console.log(tens.dataSync());
                     */

                    //const x = tf.variable(tf.tensor([1, 2, 3]));
                    //x.print();
                    //x.assign(tf.tensor([4, 5, 6]));
                    //x.print();

                    const a = tf.tensor2d([[1, 2, -3], [4, 0, -2]]);
                    const b = tf.tensor2d([[3, 1], [2, 4], [-1, 5]]);
                    const mul = tf.matMul(a, b);
                });
                
                //tens.dispose();
                //x.dispose();
                //a.dispose();
                //b.dispose();
                //mul.dispose();
                console.log(tf.memory().numTensors);
            }


        </script>
    </body>
</html>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *