惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
小众软件
小众软件
L
LangChain Blog
月光博客
月光博客
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MongoDB | Blog
MongoDB | Blog
Recorded Future
Recorded Future
V
Visual Studio Blog
TaoSecurity Blog
TaoSecurity Blog
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
L
LINUX DO - 热门话题
C
Check Point Blog
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
T
Threatpost
P
Palo Alto Networks Blog
A
About on SuperTechFans
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
N
News | PayPal Newsroom
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
量子位
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 聂微东
Google Online Security Blog
Google Online Security Blog
Google DeepMind News
Google DeepMind News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
H
Hacker News: Front Page

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
PyTorch: el framework de deep learning que ganó la guerra
Juan Torchia · 2026-06-26 · via DEV Community

Esta es la parte 5 de Awesome Curated: The Tools, donde hago deep dives en las herramientas que pasan el filtro de nuestro sistema de curación automático. Si llegaste directo acá, te recomiendo arrancar desde el post #1 sobre Docker for Novices para entender cómo funciona el proceso. En el post anterior estuvimos con TensorFlow. Hoy toca su eterno rival — y, spoiler, el que terminó ganando la batalla por los corazones de los investigadores.


Hace un par de años estaba intentando reproducir un paper de NLP. Cosa de todos los días en el mundo académico: el autor publica el código, vos lo bajás, rezás, y tratás de que corra. El paper era de 2019. El código, en TensorFlow 1.x. El quilombo que me armé con las versiones, los grafos estáticos, el tf.Session(), los placeholder... perdí medio día. Después encontré una reimplementación no oficial en PyTorch. Funcionó en quince minutos. Esa diferencia — la de sentir que el framework trabaja con vos y no contra vos — es exactamente lo que voy a intentar explicar en este post.

PyTorch no necesita presentación en 2025, pero merece una explicación honesta. Porque hay una diferencia entre saber que algo existe y entender por qué ganó.

Qué hace

PyTorch es una librería open source de machine learning desarrollada principalmente por Meta AI (antes Facebook AI Research). Está basada en Torch, una librería de cómputo científico que venía del mundo Lua, y desde 2016 vive en Python como ciudadano de primera clase.

El diferencial técnico que lo define es su enfoque define-by-run (también llamado grafo dinámico o eager execution). A diferencia del TensorFlow original que construía un grafo de computación estático y después lo ejecutaba, PyTorch construye el grafo mientras ejecuta. Esto puede sonar como un detalle de implementación, pero en la práctica cambia todo: podés usar un debugger normal, podés poner un print() en el medio de tu red neuronal y ver qué está pasando, podés tener lógica condicional real con if y for de Python.

import torch
import torch.nn as nn

# Definición de una red neuronal simple — todo es Python puro, sin magia
class RedSimple(nn.Module):
    def __init__(self):
        super().__init__()
        # Una capa oculta de 128 neuronas, una de salida con 10 clases
        self.capas = nn.Sequential(
            nn.Linear(784, 128),  # entrada: imagen 28x28 aplanada
            nn.ReLU(),            # función de activación
            nn.Linear(128, 10)    # salida: 10 clases (ej: dígitos MNIST)
        )

    def forward(self, x):
        return self.capas(x)

# Instanciamos la red y la mandamos a GPU si está disponible
dispositivo = torch.device("cuda" if torch.cuda.is_available() else "cpu")
red = RedSimple().to(dispositivo)

# El autograd calcula los gradientes automáticamente — backprop gratis
print(red)

El soporte nativo de GPU vía CUDA es transparente: movés un tensor con .to(device) y listo. El sistema de autograd calcula los gradientes automáticamente para cualquier operación que hagas sobre tensores, lo que significa que implementar backpropagation custom es sorprendentemente manejable.

El ecosistema que creció alrededor es monumental: torchvision para computer vision, torchaudio para procesamiento de audio, HuggingFace Transformers (que corre principalmente sobre PyTorch), PyTorch Lightning para estructurar el training loop sin volverse loco. Si buscás la implementación oficial de algún paper de los últimos cinco años, con alta probabilidad está en PyTorch.

# Ejemplo de training loop básico — esto es lo que Lightning después abstrae
optimizer = torch.optim.Adam(red.parameters(), lr=1e-3)
criterio = nn.CrossEntropyLoss()

for epoch in range(10):
    for imagenes, etiquetas in dataloader:  # dataloader itera el dataset
        imagenes = imagenes.to(dispositivo)
        etiquetas = etiquetas.to(dispositivo)

        optimizer.zero_grad()          # limpiamos gradientes del paso anterior
        predicciones = red(imagenes)   # forward pass
        loss = criterio(predicciones, etiquetas)  # calculamos error
        loss.backward()                # backward pass — autograd en acción
        optimizer.step()               # actualizamos pesos

    print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}")

Por qué está en la lista

Apareció en 6 awesome lists independientes. Eso no es casualidad. El sistema de curación que usamos en esta serie trata esa señal de consenso como un indicador fuerte: cuando comunidades distintas, con criterios distintos, coinciden en recomendar la misma herramienta, algo está pasando.

Lo que está pasando con PyTorch es que ganó la guerra de los frameworks de deep learning — y la ganó de la manera más convincente posible: ganándola primero en investigación y después filtrándose a producción. Hoy la mayoría de los papers en NeurIPS, ICML y similares publican código en PyTorch. HuggingFace, que es básicamente el hub de modelos más importante del mundo, está construido sobre PyTorch. Eso genera un flywheel brutal: más investigadores → más papers → más código → más adopción → más investigadores.

Comparado con TensorFlow (que cubrimos en el post anterior), PyTorch tiene una API más pythónica y una experiencia de debugging significativamente más humana. TensorFlow recuperó terreno con Keras y eager execution, pero la percepción de la comunidad investigadora ya estaba formada. Para equipos que construyen y experimentan rápido, PyTorch es la opción que tiene menos fricción.

El respaldo de Meta garantiza recursos de desarrollo serios. No es un proyecto de hobby con riesgo de abandono — es infraestructura crítica para uno de los jugadores más grandes del ecosistema AI.

Cuándo NO usarlo

Primero y principal: si no estás haciendo deep learning, probablemente no lo necesitás. Para clasificación, regresión, árboles de decisión, clustering — scikit-learn te va a dar lo mismo con un décimo de la complejidad. PyTorch es un cañón, y no todos los problemas son un elefante.

Segundo: el deployment a producción históricamente fue el talón de Aquiles. TensorFlow con TFLite o TensorFlow Serving tiene una historia más larga y más rodada para servir modelos en edge o en APIs de alta escala. PyTorch mejoró esto con TorchScript (para serializar modelos) y ONNX (para exportar a otros runtimes), pero esas herramientas agregan fricción real — y si venís del post de m2cgen, sabés que a veces la solución más elegante al deployment es no llevar el framework a producción en absoluto.

Tercero: el consumo de memoria en GPU para modelos grandes es un mundo aparte. Sin conocimiento de las internals — gradient checkpointing, mixed precision, data parallelism — es fácil quedarse sin VRAM y no entender por qué.

Cierre

PyTorch es de esas herramientas que tiene el consenso de la comunidad no por marketing sino porque resolvió un problema real mejor que la competencia. El grafo dinámico, la API pythónica, el ecosistema que creció alrededor — todo apunta en la misma dirección. Si vas a meterte en deep learning, es el punto de partida más razonable que existe hoy.

Esta fue la entrega #5 de Awesome Curated: The Tools. La serie sigue — cada tool que aparece acá pasó por un proceso de curación que combina señal de múltiples awesome lists, análisis de IA y veredicto humano mío. Si querés ver el recorrido completo desde Docker hasta acá, arrancá desde el primer post. La próxima herramienta ya está en el pipeline.


Este artículo fue publicado originalmente en juanchi.dev