Die Zuständigkeiten der drei Bibliotheken sind damit klarer getrennt. TorchCodec wandelt Mediendateien oder codierte Daten in Tensoren um und kann Tensoren wieder als Mediendateien ausgeben. Das gilt laut PyTorch für Bilder, Videos und Audio sowie für Verarbeitung auf CPU und CUDA. TorchVision übernimmt Transformationen für Bilder und Videos, TorchAudio jene für Audio.
Zuvor waren Funktionen zum Decodieren und Codieren auf TorchVision und TorchAudio verteilt und teilweise doppelt vorhanden. Bei TorchVision gab es etwa mehrere Videozugänge mit unterschiedlichen Backends; TorchAudio bot unter anderem StreamReader und StreamWriter. Die bisherigen Ein- und Ausgabefunktionen wurden laut PyTorch entweder als veraltet markiert oder entfernt. Die Zusammenführung soll außerdem Entwicklungsaufwand und Abhängigkeiten für die Medienverarbeitung an einem Ort bündeln. PyTorch bezeichnet TorchCodec als besonders leistungsfähig beim CUDA-Decoding von Videos.
TorchVision und TorchAudio richten sich nun auf ihre Transformationsfunktionen aus. Modelle, Datensätze und Pipelines in diesen Bibliotheken werden nicht mehr aktiv weiterentwickelt. PyTorch verweist dafür auf Alternativen im breiteren Ökosystem, darunter die Bibliotheken von HuggingFace. Bei TorchAudio wurden nach Rückmeldungen aus der Community einige APIs, die zunächst zur Entfernung vorgesehen waren, beibehalten; andere Funktionen wurden entfernt.
Für bestehende Abläufe bedeutet die Aufteilung: Das Decoding erfolgt mit TorchCodec, anschließend können TorchVision oder TorchAudio die Tensoren transformieren. Für Video nennt PyTorch als Beispiel den VideoDecoder von TorchCodec in Kombination mit den v2-Transformationen von TorchVision. Wer bisher Medien über die I/O-Funktionen von TorchVision oder TorchAudio verarbeitet, muss prüfen, welche davon im eigenen Projekt veraltet oder bereits entfernt sind, und die Ein- und Ausgabe gegebenenfalls auf TorchCodec umstellen.
