La mayoría de los investigadores de visión artificial y aprendizaje automático no están capacitados para optimizar su código para obtener el máximo rendimiento. Es muy raro que estas personas conozcan OpenMP o Cuda, a menudo incluso C / C ++. Esto se debe a que las comunidades de investigación de CV y ML están completamente enfocadas en problemas algorítmicos y precisión. La mayoría de los investigadores no conocen mucha programación más allá de MATLAB o Python. El rendimiento en tiempo real o un conocimiento profundo de las compensaciones de precisión de velocidad es increíblemente raro para estas comunidades. De hecho, aquellos que poseen estas habilidades raras terminan escribiendo bibliotecas de código abierto como Caffe en las que confía toda la comunidad.
Por otro lado, los ingenieros de software ordinarios no entienden los patrones algorítmicos comunes que se encuentran en el software CV y ML, por lo que hay un punto muerto completo en la transferencia de prototipos de investigación al cuerpo de ingeniería en muchas grandes empresas. Los ingenieros de software NECESITAN que el código ya esté optimizado para el rendimiento cuando se lo entregan los investigadores, mientras que los investigadores tampoco quieren pasar su tiempo haciendo la optimización del código, incluidas las optimizaciones de nivel de algoritmo (considerado por muchos doctores como un desafío intelectual menor). , y no da como resultado patentes / publicaciones) o no tengo el conjunto de habilidades para optimizar en absoluto como dije anteriormente.
Si puede posicionarse como alguien que ha trabajado con algunos proyectos de visión / aprendizaje, puede mirar el código de investigación e identificar los patrones habituales de procesamiento de datos visuales, y encontrar formas de optimizarlo, a nivel algorítmico y de implementación -nivel tal vez en una plataforma de baja potencia como una GPU móvil o un procesador integrado multinúcleo, ¡será muy valioso para convertir realmente el código de investigación en productos aptos para el envío y podrá tener un gran impacto!
- Cómo aprovechar al máximo tu tiempo con un trabajo de 9-5
- Actualmente, aproximadamente la mitad de la población de la India tiene menos de 25 años, y en los próximos 10 a 15 años ingresarán al mercado laboral. ¿Cuáles son las implicaciones si no hay suficientes empleos para 500 millones de personas?
- Estoy en mis 40, he estado programando profesionalmente por más de 15 años, pero no tengo un título universitario. ¿Cómo me acerco a las empresas?
- ¿Cómo pueden los diseñadores e ingenieros trabajar en armonía en una empresa de software?
- ¿Qué bancos de inversión y firmas consultoras están contratando en Singapur?
PD: Por optimizar me refiero a usar menos recursos computacionales: ciclos de reloj, menos núcleos, capacidad de almacenamiento, accesos a la memoria mientras se mantiene la precisión “suficiente”.