Quali sono le differenze tra Torch e Pytorch?
PyTorch non è solo un'interfaccia. La sua relazione con il codice C/C++ sottostante è più stretta che nella maggior parte delle librerie per calcoli scientifici. Il percorso più comune è quello di costruire una versione di basso livello e poi generare diverse interfacce per i più popolari linguaggi di alto livello, Python, R, ecc. Il codice sottostante è specificamente fatto su misura per lo scopo finale - eseguire il codice Python. È stato fatto un sacco di lavoro sulla gestione della memoria e sull'ottimizzazione (ed è davvero impressionante quanto tutto sia veloce), ma non ne conosco i dettagli. Invece, voglio sottolineare un cambiamento che conta molto.
In Lua Torch c'erano i contenitori. In Pytorch non ci sono più. Costruisci il tuo modello come una sottoclasse di Module e ridefinisci il passo avanti come un metodo, che è un modo pulito di farlo senza la verbosità di TensorFlow (che ha i suoi benefici, però).
I contenitori in Lua Torch, se passi un po' di tempo a lavorare con loro, hanno un problema, non sai veramente cosa succede dentro. Se vuoi convolvere un certo livello A, poi sovracampionarlo e concatenarlo con il livello A e fare qualcosa con il risultato, beh, forse puoi riuscire a scrivere qualcosa di simile (non puoi ancora essere sicuro che faccia esattamente quello). Ma come scorreranno i gradienti? I contenitori non rispondono a questa domanda. Queste cose sottili che non si presentano spesso, ma che sono importanti a volte, possono essere trovate solo nel tempo.
In Pytorch questo processo è completamente trasparente, ancora meglio, puoi eseguire il tuo codice linea per linea e controllare la dimensionalità di ogni tensore. I messaggi di errore sono comprensibili e hanno davvero senso. Ho voluto fortemente questo mentre usavo Theano/Lasagne.
Quindi, almeno perché hanno risolto un importante problema architettonico senza rompere nulla, vale la pena guardarlo.
Articoli simili
- Perché qualcuno dovrebbe scegliere il BlackBerry Torch rispetto all'Android HTC Desire?
- Quali sono le differenze tra il Qualcomm Snapdragon 665 e il 662? Qual è meglio tra loro?
- Quali sono le differenze tra tablet e phablet? E quali altre varianti di dispositivi intelligenti esistono?
- Quali sono le differenze tra assorbenti e tamponi? Quali preferisci e perché?