RILASCIO DI PYTORCH 1.5: NUOVE API, POTENZA C ++ AGGIORNATA E ALTRO

Considerata una libreria di sola ricerca in precedenza, PyTorch ha guadagnato la trazione tra gli sviluppatori per una vasta gamma di flussi di lavoro di data science. Per migliorare ulteriormente l’esperienza dell’utente, Facebook ha rilasciato PyTorch 1.5 , che include nuove aggiunte API e miglioramenti per semplificare i flussi di lavoro di deep learning. Questa versione si è focalizzata principalmente sull’aumento del suo ambito consentendo agli utenti C ++ di implementare efficacemente varie tecniche di apprendimento automatico. Inoltre, l’ultima versione include anche il formato di memoria “channel last” per i modelli di visione artificiale e il framework RPC per l’addestramento parallelo al modello. Inoltre, PyTorch 1.5 non supporterà più Python 2 e nelle versioni future sarà limitato a Python 3, in particolare 3.5 e versioni successive.

Funzionalità principali per requisiti ad alta velocità
Precedentemente contrassegnata come sperimentale, l’API di frontend C ++ è ora stabile e pronta per essere utilizzata in modo impeccabile. L’interfaccia frontend P ++ di PyTorch era una funzionalità molto attesa in quanto amplierà ulteriormente l’uso della libreria in un’ampia varietà di applicazioni. I data scientist e i ricercatori hanno adorato soprattutto l’interfaccia di Python per la sua semplicità e flessibilità, ma ha lasciato dietro di sé enormi basi di codice, per chi è interessato alla progettazione grafica 3D, ai giochi e altro ancora. Questo perché nel software di fotoritocco e nello sviluppo back-end della grafica, gli sviluppatori hanno bisogno di velocità e Python non è la soluzione migliore per tali attività.

Ora che l’API C ++ si è spostata in modalità stabile, migliorerà ulteriormente l’adozione della libreria tra le codebase C ++ esistenti, consentendo loro di lavorare in sistemi a bassa latenza e ambienti altamente multithread.

miglioramenti:

Con questa nuova versione stabile della funzionalità, gli utenti saranno in grado di tradurre facilmente il loro modello dall’API Python all’API C ++ con il modulo torch :: nn
Risolti gli ottimizzatori in C ++ che erano deviati dall’equivalente Python
Introduzione dell’API di indicizzazione multi-dimmer tensore in C ++ – una delle soluzioni più attese
Leggi anche 11 set di dati open source che possono essere utilizzati per progetti di scienze della salute
Novità :

Per consentire agli utenti di associare classi C ++ personalizzate a TorchScript e Python, l’azienda ha introdotto torch.CustomClassHolder. È simile nella sintassi a pybind11, consentendo alla classe C ++ e ai suoi metodi di manipolare oggetti C ++ arbitrari da TorchScrip e Python.

Channel Last per Computer Vision
Per semplificare i flussi di lavoro di visione artificiale, PyTorch è ora dotato di layout di memoria “channel last” che consente agli utenti di utilizzare algoritmi e hardware di convoluzione efficienti in termini di prestazioni: Tensor Core, NVIDIA, FBGEMM, QNNPACK. Inoltre, è costruito per propagarsi attraverso gli operatori mentre passa automaticamente da un layout di memoria all’altro.

Sebbene questa funzione sia rilasciata con il tag sperimentale, la scrittura di operatori consapevoli del formato di memoria aiuterà a generare output nello stesso formato di memoria degli input e utilizzerà i kernel più efficienti per vari formati di memoria.

API RPC Framework distribuite
L’RPC distribuito consente agli sviluppatori di eseguire funzioni in remoto, supporta il riferimento a oggetti remoti senza copiare i dati reali, tra gli altri. Dopo aver corretto i bug e migliorato la funzionalità, la funzionalità è stata ora spostata in versione stabile per semplificare il flusso di lavoro dei data scientist. Alcune delle API all’interno di questo framework includono:

API RPC : le tre API principali – rpc_sync (), rpc_async () e remote () consentono ai data scientist di gestire efficacemente il valore di ritorno per una vasta gamma di attività. Inoltre, consente agli utenti di specificare le funzioni da eseguire e gli oggetti da istanziare su nodi remoti. Tali funzioni vengono registrate in modo tale che i gradienti possano essere retropropagati attraverso le necessità remote utilizzando la distribuzione automatica.
Autograd distribuito: cucisce il grafico autograd su vari nodi e consente alle sfumature di fluire durante il passaggio all’indietro. A differenza del campo .grad, i gradienti vengono accumulati in un contesto per il quale gli utenti devono specificare il passaggio in avanti del proprio modello usando dist_autograd.context () per assicurarsi che la comunicazione RPC sia registrata.
Ottimizzatore distribuito : nel caso di passaggi distribuiti avanti e indietro, l’ottimizzatore aiuta a gestire i parametri e i gradienti che sono sparsi. Crea RRef per ottimizzare su ogni lavoratore con parametri che richiedono gradienti e quindi utilizza l’API RPC per l’esecuzione in remoto.

Di ihal