Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

123
Visualizações
El modelo simple tensorflow.js mata el rendimiento del navegador

Creé una aplicación para ejecutar un modelo tfjs simple en una cámara en vivo en el navegador. El problema es que mata por completo el rendimiento de la página web. La frecuencia de actualización es de alrededor de 1-2 fps y todo el navegador está retrasado (otras pestañas, películas de YouTube, incluso la interfaz gráfica de usuario del sistema). Lo que es extraño, después de la ejecución lenta del primer modelo (el modelo se compila para que sea comprensible), el tiempo de ejecución del modelo está en el rango de 1.5-4ms (medido como en el script a continuación). Así que no debería ser un problema para el navegador.

 if (navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia({ video: true }) .then(function (stream) { video!.srcObject = stream; }) .catch(function (_) { console.log("Something went wrong!"); }); } let model = await tf.loadGraphModel('model/model.json') let video = document.querySelector("#videoElement") as HTMLVideoElement; async function do_inference() { let startTime = performance.now(); const image = tf.expandDims(tf.browser.fromPixels(video)); const image_fl32 = tf.cast(image, 'float32'); let final_pred = tf.tidy(() => { return model.predict(image_fl32) as tf.Tensor4D; }); image.dispose(); image_fl32.dispose(); final_pred.dispose(); let total = performance.now() - startTime; console.log(total); if (running) { requestAnimationFrame(do_inference); } }

Notas adicionales:

  • modelo es un modelo de convolución completa muy simple. Básicamente pocas capas de circunvoluciones de 3x3 y 5x5. También hice una prueba con un modelo aún más pequeño (2 capas) y tiene los mismos problemas.
  • el tfjs se ejecuta con el backend webgl , cambiarlo a wasm da como resultado un tiempo de ejecución mucho mayor (alrededor de 150-200 ms), pero el video es fluido. En la producción me gustaría usar un modelo aún más grande, por lo que no puedo aceptar tal tiempo de ejecución.
  • Probé en RTX 3060, Ryzen de 32 subprocesos, 128 GB de RAM. Así que la PC no debería ser un problema
  • Parece que no hay pérdidas de memoria en el lado de tfjs
  • el modelo se convierte del modelo tensorflow.keras.Model usando el método Model.save y luego usando tensorflowjs_converter@3.9 con --output_format=tfjs_graph_model

¿Estoy haciendo algo mal? ¿Hay alguna manera de hacer que el video sea fluido?

about 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda