Quale dovrebbe essere il percorso migliore per convertire un modello di scikit (ad esempio il risultato di un adattamento RandomForestClassifier) in un pezzo di C++ per ottenere il più veloce .so
che può essere chiamato da qualche altro ecosistema?Come convertire un modello scikit in un veloce `.so`
5
A
risposta
1
Per la portabilità di scikit addestrato, acquisire modelli in altre lingue, vedere il progetto sklearn-porter.
Tuttavia, se questo sarà più veloce del metodo originale RandomForestClassifier.predict
(che è multithreading e utilizza operazioni numpy, potenzialmente con una libreria BLAS veloce) rimane da vedere.
Problemi correlati
- 1. Come convertire un set di dati Scikit-learn in un set di dati di Pandas?
- 2. Come convertire una stringa in numero in un modello freemarker
- 3. modo più veloce per sostituire stringa in un modello
- 4. C'è un modo più veloce di convertire un numero in un nome?
- 5. Passa un dict a scikit learn stimator
- 6. Un modo affidabile e veloce per convertire un file ODT zillion in PDF?
- 7. Come convertire un InputStream in un DataHandler?
- 8. Come convertire un file in un dizionario?
- 9. Come convertire un Instant in un LocalTime?
- 10. Come convertire un LocalDate in un Instant?
- 11. Come convertire un pymongo.cursor.Cursor in un dict?
- 12. Come convertire un NSInteger in un NSTimeInterval
- 13. Come rilevare il SO in un file make?
- 14. Come convertire un oggetto in un file json per il loader del modello three.js
- 15. Qual è il modo più veloce per convertire un float [] in un byte []?
- 16. Come convertire un SparrayArray in ArrayList?
- 17. Come si inserisce un modello in un altro modello?
- 18. Come convertire un HTMLElement in una stringa
- 19. Come convertire un boost :: ptime in stringa
- 20. Xkb: Come convertire un keycode in keysym
- 21. Scikit-learn: come eseguire KMeans su un array monodimensionale?
- 22. come convertire un CVImageBufferRef in UIImage
- 23. Come convertire un carattere in un valore Enum System.Windows.Input.Key equivalente?
- 24. Come convertire un DataTable/DataSet in un oggetto ObjectDataSource
- 25. Elencare le parole in un vocabolario in base all'occorrenza in un corpo di testo, Scikit-Learn
- 26. Come posso convertire immagini da scikit-image in opencv2 e altre librerie?
- 27. Come convertire un Datetime .Net in un datetime T-SQL
- 28. Come convertire un Int in un personaggio in Swift
- 29. Come convertire un valore ASCII in un carattere in .NET
- 30. Come convertire un intero in un array in PHP?
Non capisco cosa intendi per "convertire". 'RandomForestClassifier' è [implementato in Python] (https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py#L372-L628), non come estensione compilata. Se vuoi una versione compilata veloce dovrai riscriverla. Un'opzione sarebbe usare [Cython] (http://cython.org/) che può convertire un superset di Python in C in modo che possa essere compilato staticamente. Non c'è una soluzione a sforzo zero, però - dovrai aggiungere le tue dichiarazioni di tipo statico, ecc. Per vedere un'accelerazione apprezzabile. –
Sì, sono d'accordo, ma per creare/addestrare/adattare il modello e usarlo per fare una previsione sono due diversi pensieri. Scikit RandomForestClassifier creerà il modello, di solito memorizzato in un sottaceto come raccolta ad albero. In un contesto RTB ad alta velocità ho bisogno di "usare/accelerare" questo modello risultante, convertendo solo la "zuppa di alberi" finale in qualche codice C++ per applicarlo più velocemente. Ho visto PMML http://stackoverflow.com/questions/38431113/convert-a-pmml-describe-model-in-c-c ma non sembra essere di grande aiuto per il nostro caso. – user3313834