04.-TensorFlow js en Espa帽ol馃嚜馃嚫 [Manejo de Memoria]


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>





Comentarios

Facebook Like

Entri Populer

hackear wifi con kali linux 馃摗

Instalar Netbeans 10 en Windows 10

Instalar netbeans 10 en ubuntu 18.04