Aprendizaje automático: bibliotecas TypeScript para navegador y Node.js

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Aprendizaje automático en TypeScript: reseña de bibliotecas clave



TypeScript — una extensión de JavaScript con tipado estático — se utiliza cada vez más en proyectos relacionados con el aprendizaje automático (ML). Gracias al tipado estricto, la legibilidad mejorada del código y el excelente soporte en IDE, TypeScript permite crear aplicaciones de ML robustas que funcionan tanto en el navegador como en el servidor (Node.js). En este artículo revisaremos las principales bibliotecas para aprendizaje automático en TypeScript, sus capacidades y proporcionaremos ejemplos prácticos.



1. TensorFlow.js — el referente del aprendizaje automático en TypeScript



TensorFlow.js es un puerto del popular framework TensorFlow para JavaScript y TypeScript. Permite ejecutar modelos de aprendizaje automático directamente en el navegador o en Node.js sin infraestructura de servidor. La biblioteca soporta todas las etapas principales del ML: carga de modelos preentrenados, entrenamiento de nuevos modelos, inferencia (predicción) e incluso ajuste fino (fine-tuning).



Instalación:

npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node  # para Node.js (con aceleración)


Ejemplo: clasificación de imágenes con el modelo preentrenado MobileNet

import * as tf from '@tensorflow/tfjs';import { loadGraphModel } from '@tensorflow/tfjs-converter';

async function classifyImage(imageElement: HTMLImageElement) { // Cargamos el modelo preentrenado MobileNet const model = await loadGraphModel( 'https://tfhub.dev/google/tfjs-model/imagenet/mobilenet_v2_100_224/classification/3/default/1' );

// Convertimos la imagen en un tensor const tensor = tf.browser.fromPixels(imageElement) .resizeNearestNeighbor([224, 224]) .toFloat() .expandDims();

// Obtenemos la predicción const prediction = model.predict(tensor) as tf.Tensor; const topK = tf.topk(prediction, 3); const indices = await topK.indices.data(); const values = await topK.values.data();

console.log('Top-3 predicciones:', indices, values);}

// Usoconst img = document.getElementById('myImage') as HTMLImageElement;classifyImage(img);


TensorFlow.js es ideal para tareas de visión por computadora, procesamiento de texto (NLP) y series temporales. En TypeScript obtienes autocompletado para todos los métodos, lo que acelera significativamente el desarrollo.



2. ML5.js — una interfaz amigable para ML creativo



ML5.js está construido sobre TensorFlow.js, pero ofrece una API más simple y de alto nivel. Esta biblioteca está orientada a artistas, diseñadores y desarrolladores que desean agregar funcionalidad de ML rápidamente sin profundizar en las matemáticas. ML5.js soporta tareas como clasificación de imágenes, detección de objetos, generación de texto, análisis de sonido y mucho más.



Instalación:

npm install ml5


Ejemplo: detección de objetos con COCO-SSD

import ml5 from 'ml5';

async function detectObjects(videoElement: HTMLVideoElement) { // Cargamos el modelo de detección de objetos const objectDetector = await ml5.objectDetector('cocossd');

// Realizamos la detección en el video const results = await objectDetector.detect(videoElement);

results.forEach((obj: any) => { console.log(`Objeto: ${obj.label}, confianza: ${obj.confidence.toFixed(2)}`); console.log(`Coordenadas: x=${obj.x}, y=${obj.y}, ancho=${obj.width}, alto=${obj.height}`); });}

// Uso con la cámara webconst video = document.getElementById('webcam') as HTMLVideoElement;navigator.mediaDevices.getUserMedia({ video: true }) .then(stream => { video.srcObject = stream; }) .then(() => detectObjects(video));


ML5.js es excelente para prototipado, proyectos educativos e instalaciones interactivas. En TypeScript puedes definir tipos para los resultados de detección, lo que hace

Recommendations