Re: Data scientist job
От: Gattaka Россия  
Дата: 26.04.18 20:23
Оценка: :))) :)))
Здравствуйте, Nuzhny, Вы писали:

N>Интересная статья про эту специальность. Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.


N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.

Ссылка не открывается. C# скоро поднимится — после выхода .net core у него теперь хорошие перспективы. Все работает, быстро и качественно. Самые лучшие и адекватные программисты. Одним словом идеальное сочетание.
Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.04.18 18:32
Оценка: 4 (1) :)))
Интересная статья про эту специальность. Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.

О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.
Отредактировано 26.04.2018 18:44 Nuzhny . Предыдущая версия .
Re[9]: Data scientist job
От: alexsoff Россия  
Дата: 27.04.18 15:54
Оценка: 1 (1) +2
Здравствуйте, Nuzhny, Вы писали:
  cut
N>Добавлю кусочек из того же примера:
N>
N>// display the original training samples
N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N>   PointF p1 = new PointF(trainData1[i, 0], trainData1[i, 1]);
N>   img.Draw(new CircleF(p1, 2.0f), colors[0], -1);
N>   PointF p2 = new PointF(trainData2[i, 0], trainData2[i, 1]);
N>   img.Draw(new CircleF(p2, 2.0f), colors[1], -1);
N>   PointF p3 = new PointF(trainData3[i, 0], trainData3[i, 1]);
N>   img.Draw(new CircleF(p3, 2.0f), colors[2], -1);
N>}
N>


N>На С++ будет так:

N>
N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N>   cv::circle(img, cv::Point(trainData1[i, 0], trainData1[i, 1]), 2, colors[0]);
N>   cv::circle(img, cv::Point(trainData2[i, 0], trainData2[i, 1]), 2, colors[1]);
N>   cv::circle(img, cv::Point(trainData3[i, 0], trainData3[i, 1]), 2, colors[2]);
N>}
N>

На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до
 (trainSampleCount / 3).ForEach(i =>
            {
                img.DrawEx(trainData1, colors[0], i).
                    DrawEx(trainData1, colors[1], i).
                    DrawEx(trainData1, colors[2], i);
            });
Re[10]: Data scientist job
От: De-Bill  
Дата: 28.04.18 01:47
Оценка: 6 (2)
A>На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до
A>
  cut
A>
A> (trainSampleCount / 3).ForEach(i =>
A>            {
A>                img.DrawEx(trainData1, colors[0], i).
A>                    DrawEx(trainData1, colors[1], i).
A>                    DrawEx(trainData1, colors[2], i);
A>            });
A>



Только вот у того, кто будет читать этот код, возникнет много вопросов. Что такое DrawEx? Зачем DrawEx принимает параметр i? Что должно содержаться в trainData1 (какой размерности массив/какой порядок следования координат)? Круг какого радиуса нарисует DrawEx? Что будет, если i выйдет за границы размера trainData1 (exception или ничего)?

С другой стороны на Python весь код будет выглядеть примерно так без никаких экстеншенов вообще и ответы на все вопросы выше ясны сразу же:
for trainData, color in zip([trainData1, trainData2, trainData3], colors[:3]):
    for x, y in trainData[:trainSampleCount // 3]:
        cv2.circle(img, (x, y), 2, color)
Отредактировано 28.04.2018 4:04 De-Bill . Предыдущая версия . Еще …
Отредактировано 28.04.2018 1:53 De-Bill . Предыдущая версия .
Отредактировано 28.04.2018 1:52 De-Bill . Предыдущая версия .
Отредактировано 28.04.2018 1:49 De-Bill . Предыдущая версия .
Отредактировано 28.04.2018 1:48 De-Bill . Предыдущая версия .
Re: Data scientist job
От: serj.e  
Дата: 27.04.18 09:20
Оценка: 4 (1) +1
Жаль, что мир стал забывать годнейшую "APL–family". J, K, Q, kdb+, вот это все. Лучшие же ж инструменты для ворочания данными в плане скорости прототипирования подготовленным человеком.

Думаю, в первых рядах причин такого безобразия — уход в глухую проприетарщину и "камерность" соответствующих инструментов в свое время.
Re[6]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 12:07
Оценка: 3 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Еще раз -- язык-то тут причем? 2-3 строчки питона -- вызов соотв. библиотек. Тоже количство было бы и на шарпе в случае вызова соотв. библиотек.


И близко не было бы. По твоей логике получается, что много разных языков не нужно: взял один, понаписал библиотек и пользуйся. Но по факту, языков много, их постоянно создают и переходят с одного на другой.
Для примера с Питоном: анализ данных на нём делают как правило в jupiter notebooks. Получается охрененный результат в виде органического сосуществования документации, кода и его результата. Можно поменять ячейку, нажать Enter и она пересчитается — интерактивность на высоте.
Что интересно, jupiter позволяет делать аналогично со многими языками, но выстрелил именно Питон. Почему? Потому что удобен.
Re[8]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 02.05.18 15:33
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

S>Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке.


Ты неверно понимаешь о чем речь. Когда мы пытаемся что то собрать — вот тут питон по полной, а с C# глухо, хотя кое какие подвижки последнее время есть, так как востребованность довольно высокая. А вот когда мы уже получили готовую обученную сетку, ее реализация для прода может быть и на C#, но скорее всего это будет вообще С++.
Re: Data scientist job
От: De-Bill  
Дата: 27.04.18 01:38
Оценка: 4 (1)
N>Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.

Вот тоже интересная статья.
https://www.kdnuggets.com/2017/09/python-vs-r-data-science-machine-learning.html
R отстаёт от Python, и, думаю, разрыв будет нарастать.
Re[2]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.04.18 21:00
Оценка: +1
Здравствуйте, Gattaka, Вы писали:

G>Ссылка не открывается. C# скоро поднимится — после выхода .net core у него теперь хорошие перспективы. Все работает, быстро и качественно. Самые лучшие и адекватные программисты. Одним словом идеальное сочетание.


Странно, держи ссылку на оригинал.
Куда он поднимется-то? У .net core есть возможности в статистике? В ML? В обработке больших данных? По этим дисциплинам проводятся курсы и обучение? Что он вообще может предложить?
Re[2]: Data scientist job
От: De-Bill  
Дата: 27.04.18 01:26
Оценка: +1
G>Ссылка не открывается. C# скоро поднимится — после выхода .net core у него теперь хорошие перспективы.

Только вот какое отношение core имеет к data science? Думаю, что у C# в этой области нет вообще никаких перспектив. Слишком он неудобен для работы с данными как язык (даже древнейший SAS удобнее не говоря про Python + pandas), а библиотеки слабые и развития их никакого в этом направлении не будет.
Отредактировано 27.04.2018 1:30 De-Bill . Предыдущая версия .
Re[2]: Data scientist job
От: mtnl  
Дата: 27.04.18 03:32
Оценка: +1
Здравствуйте, Gattaka, Вы писали:

G>Ссылка не открывается. C# скоро поднимится — после выхода .net core у него теперь хорошие перспективы. Все работает, быстро и качественно. Самые лучшие и адекватные программисты. Одним словом идеальное сочетание.


Java/Scala — в продакшн инфрастуктуре, спарк и все это, ну и Scala — скриптовый язык удобный для рисерча,
R и Python применительно к датасаенсу учатся не более чем за месяц, удобный инструментарий для работы с матрицами, векторами, статистикой и матаном, библиотеки по автоподбору фич и параметров моделей
R, вероятно, популярен потому, что его дают в вузах (но тех, кто знаю, на питон переходят)

Роль C# на практике — обмазка вокруг lightgbm для продакшна.
То есть дата саентист делает ресерч, подбирает фичи и параметры модели и делает это на питоне.
Потом годная модель отдается программистам, которые реализуют к этому интерфейс для человеков и прочего и тут уже есть c# но нет датасаенса

То есть проблемы C# он не скриптовый и под него все плохо с библиотеками
Re[2]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 08:58
Оценка: +1
Здравствуйте, Тёмчик, Вы писали:

Тё>По моим нисколько не обширным наблюдениям, про "труп страуса" кванты говорят, но в реале используют R и подобные языки. У Java вполне логично есть там ниша, ибо гугл выкладывает фреймворки на ней.


Кванты-то ладно, их по статистике 8-20% из всех data scientist. Если же приложение сильно критично по времени, то всё равно от С++ пока не уйти. У нас разработка выглядит примерно так:
1. Модели пишутся на Python + Keras или чистый TF. Ну или другие более классически модели. На серверах всегда Убунта, на компах разработчиков (data scientist'ов конечно!) чаще всего тоже она.
2. Потом модели переносятся в продакшен уже на С++, inference нейросетей работает на opencv_dnn (если CPU) и на TF + cudnn (если GPU). Для TF используется его С++ API. Для всех моделей есть С++ API, мы их вызываем иногда сотни раз на один кадр видео, поэтому тут вариантов нет.

Наши data scientist'ы умеют писать и на С++, и на Питоне.
Re[5]: Data scientist job
От: Sharov Россия  
Дата: 27.04.18 10:55
Оценка: :)
Здравствуйте, De-Bill, Вы писали:

DB>Язык крайне важен. В data science большая большая часть идей, гипотез, подходов не срабатывает, или срабатывает не в том виде, в каком задумывалось. Допустим, мне надо проверить гипотезу. Я могу сделать это в 3 строки на Python, беру и делаю. На C# это заняло бы строк 20-30 со всякими вложенными циклами и подобной хренью, желание проверять гипотезу, которая в 90% случаев окажется неверной, пропадает.


Еще раз -- язык-то тут причем? 2-3 строчки питона -- вызов соотв. библиотек. Тоже количство было бы и на шарпе в случае вызова соотв. библиотек.
Кодом людям нужно помогать!
Re[8]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 12:37
Оценка: -1
Здравствуйте, Sharov, Вы писали:

S>Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке. И чем тут C# кроме отсутствия библиотек хуже?


Прямо сейчас ему явно не хватает кроссплатформенности. Я его плохо знаю, но написание кода должно быть удобно для непрограммистов, математиков или статистиков. Такое возможно? При всей моей любви к С++ я точно знаю, что на нём неспециалист писать не сможет. Можно ли на C# писать в чисто процедурном стиле? Чтобы не думать о классах, их иерархии и архитектуре приложения? Это тоже не нужно. Язык должен быть простым, чтобы на нём могли писать все.
Про нехватку библиотек уже говорили. Кто их будет писать? Или хотя бы удобные биндинги? Например, я использовал OpenCV из С, из С++, из C# (через Emgu CV) и через Питон. В С было слишком многословно и муторно, в С++ удобно, в Питоне очень удобно и кратко, а в С# я испытывал проблемы чисто языковые (вот пример): using, new, бесконечное указание типов матриц. Зачем это?!! Почему в С++ и Питоне всё это не нужно?
Вот кусочек кода:
Bgr[] colors = new Bgr[] { 
   new Bgr(0, 0, 255), 
   new Bgr(0, 255, 0),
   new Bgr(255, 0, 0)};

Создаётся статический массив из трёх структур. Зачем тут 4 раза вызывается new? Мне непонятно. Да, я не программирую на C#, но такие конструкции выглядят дикостью на фоне современного прогресса в С++. С таким подходом никто в здравом уме пользоваться C# не будет.

Добавлю кусочек из того же примера:
// display the original training samples
for (int i = 0; i < (trainSampleCount / 3); i++)
{
   PointF p1 = new PointF(trainData1[i, 0], trainData1[i, 1]);
   img.Draw(new CircleF(p1, 2.0f), colors[0], -1);
   PointF p2 = new PointF(trainData2[i, 0], trainData2[i, 1]);
   img.Draw(new CircleF(p2, 2.0f), colors[1], -1);
   PointF p3 = new PointF(trainData3[i, 0], trainData3[i, 1]);
   img.Draw(new CircleF(p3, 2.0f), colors[2], -1);
}


На С++ будет так:
for (int i = 0; i < (trainSampleCount / 3); i++)
{
   cv::circle(img, cv::Point(trainData1[i, 0], trainData1[i, 1]), 2, colors[0]);
   cv::circle(img, cv::Point(trainData2[i, 0], trainData2[i, 1]), 2, colors[1]);
   cv::circle(img, cv::Point(trainData3[i, 0], trainData3[i, 1]), 2, colors[2]);
}

На Питоне примерно также, но можно cv::Point не писать, а отправить туда тупл.
Разница колоссальная и по объёму кода и по идеологии. Не надо создавать точки, создавать окружности и у картинки вызывать метод Нарисовать Окружность. Подход будет: нарисовать Окружность с таким-то цетром и радиусом такого цвета. Как по мне, это логичнее.
Отредактировано 27.04.2018 12:45 Nuzhny . Предыдущая версия .
Re: Data scientist job
От: namespace  
Дата: 29.04.18 04:52
Оценка: +1
N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.
Это прикладное направление, к разработке не имеет никакого отношения. Не следует путать инженерию и анализ статистики.
Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.

Для примера, у нас в ии физиологии научные сотрудники пишут сложные скрипты на матлабе, но при этом называть их программистами как-то неправильно.
Re[11]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 02.05.18 20:44
Оценка: +1
Здравствуйте, novitk, Вы писали:

N>В C# нет репла,


Есть

N> быстрой перегрузки кода,


Есть

N> динамики


Есть, но если ее активно использовать, то смысла в C# нет.

N> и переносимости.


Есть.
Re[11]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 12:30
Оценка: +1
Здравствуйте, De-Bill, Вы писали:

DB>С другой стороны на Python весь код будет выглядеть примерно так без никаких экстеншенов вообще и ответы на все вопросы выше ясны сразу же:

DB>
DB>for trainData, color in zip([trainData1, trainData2, trainData3], colors[:3]):
DB>    for x, y in trainData[:trainSampleCount // 3]:
DB>        cv2.circle(img, (x, y), 2, color)
DB>


На шарпе примерно так же можно. Просто хорошее API требует отдельного внимания и усилий.
Re[4]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 04.05.18 07:49
Оценка: +1
Здравствуйте, jabberwock, Вы писали:

J>Интересно, а есть ли место TensorFlow Serving в сходном с вашим процессе?

J>Он по идее как раз призван заменить работу с моделями напрямую, предоставляя нечто в виде application server для специально экспортированных/облегченных моделей и выставляя наружу gRPC, чтобы с ними общаться.
J>Или есть способы делать это лучше, "руками"?

Для видео — вряд ли. Для аэрофотоснимков — вполне. Но я не использовал ни разу, всё ручками
Re[22]: Data scientist job
От: novitk США  
Дата: 04.05.18 21:59
Оценка: +1
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Аналог CSI на базе Розлина я делал за час.

Про час lol, ну да ладно. Я правильно понимаю, что никакого репла в .core из коробки до сих пор нет?

N>> "b = a"?

НС>TypeCastException
Ну типа да, поэтому нужно все на свете использующее Klass перегружать в случае статики, а в динамике нет. Чувствуешь разницу?
Re: Data scientist job
От: turbocode  
Дата: 26.04.18 20:26
Оценка:
N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.

А где же XML\XSLT, NoSQL?
Re[3]: Data scientist job
От: koenig  
Дата: 26.04.18 21:13
Оценка:
N>Куда он поднимется-то? У .net core есть возможности в статистике? В ML? В обработке больших данных? По этим дисциплинам проводятся курсы и обучение? Что он вообще может предложить?

да как обычно
ms найдет фатальный недостаток
Re[3]: Data scientist job
От: StatujaLeha на правах ИМХО
Дата: 26.04.18 22:24
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Странно, держи ссылку на оригинал.


Роскомнадзор не спит.
Тоже оригинальная ссылка не открывалась. Через прокси все ок.
Re: Data scientist job
От: Тёмчик Австралия жж
Дата: 27.04.18 01:19
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Интересная статья про эту специальность. Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.


N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.


По моим нисколько не обширным наблюдениям, про "труп страуса" кванты говорят, но в реале используют R и подобные языки. У Java вполне логично есть там ниша, ибо гугл выкладывает фреймворки на ней.
Re[3]: Data scientist job
От: merge  
Дата: 27.04.18 05:41
Оценка:
Здравствуйте, mtnl, Вы писали:



M>То есть проблемы C# он не скриптовый и под него все плохо с библиотеками


можно расшифровать это?
Re[4]: Data scientist job
От: De-Bill  
Дата: 27.04.18 05:57
Оценка:
M>>То есть проблемы C# он не скриптовый и под него все плохо с библиотеками
M>можно расшифровать это?

C# из-за статической типизации, тяжеловесности конструкций и т.д. не подходит для "интерактивной разработки"/REPL (типа как jupyter notebook для Python), а без этого работать с данными и их анализировать очень неудобно.
С библиотеками для data science у него не то чтобы всё плохо. Их просто практически нет.
Re[3]: Data scientist job
От: snautSH Германия  
Дата: 27.04.18 07:36
Оценка:
N>Странно, держи ссылку на оригинал.
N>Куда он поднимется-то? У .net core есть возможности в статистике? В ML? В обработке больших данных? По этим дисциплинам проводятся курсы и обучение? Что он вообще может предложить?

не, ну какая разница на чем писать джобы для хадупа, не, ну разница есть, питон или скала лучше, но можно и на .net хотя это как лечить кариес через попу. ТОесть пишен на .net сервис, укпаковываем в какой нить docker контейнер и запускаем его на любом linux environment
Re[3]: Data scientist job
От: Sharov Россия  
Дата: 27.04.18 09:57
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Слишком он неудобен для работы с данными как язык (даже древнейший SAS удобнее не говоря про Python + pandas), а библиотеки слабые и развития их никакого в этом направлении не будет.


Язык-то тут причем? Чет R в этом плане лучше? Вот библиотеки, а особенно встроенные -- это да, ресурс.
Кодом людям нужно помогать!
Re[4]: Data scientist job
От: De-Bill  
Дата: 27.04.18 10:05
Оценка:
S>Язык-то тут причем? Чет R в этом плане лучше? Вот библиотеки, а особенно встроенные -- это да, ресурс.

Язык крайне важен. В data science большая большая часть идей, гипотез, подходов не срабатывает, или срабатывает не в том виде, в каком задумывалось. Допустим, мне надо проверить гипотезу. Я могу сделать это в 3 строки на Python, беру и делаю. На C# это заняло бы строк 20-30 со всякими вложенными циклами и подобной хренью, желание проверять гипотезу, которая в 90% случаев окажется неверной, пропадает.
Re[5]: Data scientist job
От: torvic Голландия  
Дата: 27.04.18 10:14
Оценка:
Здравствуйте, De-Bill, Вы писали:

S>>Язык-то тут причем? Чет R в этом плане лучше? Вот библиотеки, а особенно встроенные -- это да, ресурс.

DB>Язык крайне важен.
библиотеки и инструментарий важнее языка
скала взлетела потому что спарк
аналогичный F# не видно и не слышно
Re: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 10:15
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.


На фоне конкуренции R и Питона TensorFlow переходит на... swift! А это интрига.
Кстати, статья интересная, подробно описываются все доводы за и против выбора, есть анализ языков-кандидатов.
Отредактировано 27.04.2018 10:32 Nuzhny . Предыдущая версия .
Re[6]: Data scientist job
От: De-Bill  
Дата: 27.04.18 10:39
Оценка:
T>библиотеки и инструментарий важнее языка

Важно и то и другое.
Re[2]: Data scientist job
От: serj.e  
Дата: 27.04.18 11:05
Оценка:
Вполне неплохо, например. Еще пара релизов, и Свифт имеет шансы избавиться от детских болячек и стать отличным языком.
Re[6]: Data scientist job
От: De-Bill  
Дата: 27.04.18 11:12
Оценка:
S>Еще раз -- язык-то тут причем? 2-3 строчки питона -- вызов соотв. библиотек. Тоже количство было бы и на шарпе в случае вызова соотв. библиотек.

Python как язык позволяет создавать библиотеки уровня pandas. C# нет. Точнее, повторить именно функционал можно было бы, но выглядели бы конструкции его использования ужасно, и пользоваться ими было бы невозможно. Даже для весьма ущербного LINQ разработчикам пришлось расширять язык, и всё равно получилось в разы менее удобно, чем SAS data steps 40 летней давности, а с Python + pandas вообще не сравнить.
Re[7]: Data scientist job
От: Sharov Россия  
Дата: 27.04.18 12:16
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>И близко не было бы. По твоей логике получается, что много разных языков не нужно: взял один, понаписал библиотек и пользуйся. Но по факту, языков много, их постоянно создают и переходят с одного на другой.

N>Для примера с Питоном: анализ данных на нём делают как правило в jupiter notebooks. Получается охрененный результат в виде органического сосуществования документации, кода и его результата. Можно поменять ячейку, нажать Enter и она пересчитается — интерактивность на высоте.
N>Что интересно, jupiter позволяет делать аналогично со многими языками, но выстрелил именно Питон. Почему? Потому что удобен.

Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке. И чем тут C# кроме отсутствия библиотек хуже?
Кодом людям нужно помогать!
Re[8]: Data scientist job
От: torvic Голландия  
Дата: 27.04.18 12:37
Оценка:
Здравствуйте, Sharov, Вы писали:
S>Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке. И чем тут C# кроме отсутствия библиотек хуже?
тем что надо на него переписывать?
кому нафиг такое счастье нужно???
Re[9]: Data scientist job
От: Sharov Россия  
Дата: 27.04.18 13:57
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, Sharov, Вы писали:


S>>Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке. И чем тут C# кроме отсутствия библиотек хуже?


N>Прямо сейчас ему явно не хватает кроссплатформенности. Я его плохо знаю, но написание кода должно быть удобно для непрограммистов, математиков или статистиков. Такое возможно? При всей моей любви к С++ я точно знаю, что на нём неспециалист писать не сможет. Можно ли на C# писать в чисто процедурном стиле? Чтобы не думать о классах, их иерархии и архитектуре приложения? Это тоже не нужно. Язык должен быть простым, чтобы на нём могли писать все.


Может. Коллега в отделе математик, написал кучу кода (~20kloc) в процедурном стиле -- работа с матрицами и т.д. Все на C#, в процедурном стиле -- никаких наследований, паттернов и проч. я не видел в коде.
При желании все возможно.


N>Про нехватку библиотек уже говорили. Кто их будет писать? Или хотя бы удобные биндинги? Например, я использовал OpenCV из С, из С++, из C# (через Emgu CV) и через Питон. В С было слишком многословно и муторно, в С++ удобно, в Питоне очень удобно и кратко, а в С# я испытывал проблемы чисто языковые (вот пример): using, new, бесконечное указание типов матриц. Зачем это?!! Почему в С++ и Питоне всё это не нужно?

N>Вот кусочек кода:
  Скрытый текст
Bgr[] colors = new Bgr[] { 
   new Bgr(0, 0, 255), 
   new Bgr(0, 255, 0),
   new Bgr(255, 0, 0)};


N>Создаётся статический массив из трёх структур. Зачем тут 4 раза вызывается new? Мне непонятно. Да, я не программирую на C#, но такие конструкции выглядят дикостью на фоне современного прогресса в С++. С таким подходом никто в здравом уме пользоваться C# не будет.


А сколько должно быть new? Можно создать статический конструктор и все сделать в цикле -- синтаксически будет один new. А вообще это дело исключительно привычки.


N>Добавлю кусочек из того же примера:

  Скрытый текст
N>// display the original training samples
N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N>   PointF p1 = new PointF(trainData1[i, 0], trainData1[i, 1]);
N>   img.Draw(new CircleF(new PointF(trainData1[i, 0], trainData1[i, 1]), 2.0f), colors[0], -1);
N>   PointF p2 = new PointF(trainData2[i, 0], trainData2[i, 1]);
N>   img.Draw(new CircleF(p2, 2.0f), colors[1], -1);
N>   PointF p3 = new PointF(trainData3[i, 0], trainData3[i, 1]);
N>   img.Draw(new CircleF(p3, 2.0f), colors[2], -1);
N>}


N>На С++ будет так:

  Скрытый текст
N>for (int i = 0; i < (trainSampleCount / 3); i++)
N>{
N>   cv::circle(img, cv::Point(trainData1[i, 0], trainData1[i, 1]), 2, colors[0]);
N>   cv::circle(img, cv::Point(trainData2[i, 0], trainData2[i, 1]), 2, colors[1]);
N>   cv::circle(img, cv::Point(trainData3[i, 0], trainData3[i, 1]), 2, colors[2]);
N>}

Ну тут явно вопросы к тем, кто портировал api. Оне совершенно разные. При желании код на шарпе тоже можно в три строчки написать -- заинлайнть PointF переменную в вызов Draw.

N>На Питоне примерно также, но можно cv::Point не писать, а отправить туда тупл.

N>Разница колоссальная и по объёму кода и по идеологии. Не надо создавать точки, создавать окружности и у картинки вызывать метод Нарисовать Окружность. Подход будет: нарисовать Окружность с таким-то цетром и радиусом такого цвета. Как по мне, это логичнее.

Понятное дело, что слаботипизируемые языки тут выигрывают в плане скорости разработки. Для прототипирования и исследований оне хороши, а как в продакшн, так тот же С++ получше будет. А выбор компилируемых языков зависит от кроссплатформенности, библиотек и т.д.

Кстати, в плане скорости разработки есть ощущение, что matlab получше питона будет. Только он сильно платный. А так -- все изкаропки.
Кодом людям нужно помогать!
Re[10]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 14:06
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Может. Коллега в отделе математик, написал кучу кода (~20kloc) в процедурном стиле -- работа с матрицами и т.д. Все на C#, в процедурном стиле -- никаких наследований, паттернов и проч. я не видел в коде.

S>При желании все возможно.

Это хорошо.

S>А сколько должно быть new? Можно создать статический конструктор и все сделать в цикле -- синтаксически будет один new. А вообще это дело исключительно привычки.


Ни одного не надо. Зачем это? Переходит чувак с Питона на C# и ему какие-то new надо писать, это не интуитивно. А что будет, если new пропустить? Случаем не ошибка в рантайме? Если так, то зачем такой язык вообще нужен? Это я с точки зрения питониста рассуждаю.

S>Ну тут явно вопросы к тем, кто портировал api. Оне совершенно разные. При желании код на шарпе тоже можно в три строчки написать -- заинлайнть PointF переменную в вызов Draw.


Да, но другого API нет, сделали таким, а в результате пользоваться неудобно. И эта претензия уже к языку: библиотека есть, вызовы есть, а пользоваться неудобно.

S>Понятное дело, что слаботипизируемые языки тут выигрывают в плане скорости разработки. Для прототипирования и исследований оне хороши, а как в продакшн, так тот же С++ получше будет. А выбор компилируемых языков зависит от кроссплатформенности, библиотек и т.д.


Вот, вот. На практике получается, что такой монстр как С++ получше будет. И это не только к OpenCV, но и к тому же Tensor Flow, например. А это одни из самых популярных библиотек на Гитхабе.

S>Кстати, в плане скорости разработки есть ощущение, что matlab получше питона будет. Только он сильно платный. А так -- все изкаропки.


Матлаб крут, но есть свои недостатки. И у него не всё из коробки: тулбоксы надо мало того, что докупать, так ещё и ставить их не сильно проще, чем сделать pip install. У R также просто устанавливаются дополнения.
Re[11]: Data scientist job
От: Sharov Россия  
Дата: 27.04.18 14:29
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Ни одного не надо. Зачем это? Переходит чувак с Питона на C# и ему какие-то new надо писать, это не интуитивно. А что будет, если new пропустить? Случаем не ошибка в рантайме? Если так, то зачем такой язык вообще нужен? Это я с точки зрения питониста рассуждаю.


Язык проектировался без оглядки на чуваков с питона, с оглядкой на яву. Чуваку такими вопросами задаваться, конечно, не стоит, но при первой же попытки запуска (и соотв. компиляции) он получить ответ на свой вопрос. В отличие от того же питона.

N>Да, но другого API нет, сделали таким, а в результате пользоваться неудобно. И эта претензия уже к языку: библиотека есть, вызовы есть, а пользоваться неудобно.


Субъективное суждение. Мне бы было удобно, при условии что интерфейс более-менее разумно составлялся и портировался.

N>Вот, вот. На практике получается, что такой монстр как С++ получше будет. И это не только к OpenCV, но и к тому же Tensor Flow, например. А это одни из самых популярных библиотек на Гитхабе.


Увы. Сами мс на шарп забили -- их DP библиотека (mnctk кажется) тоже на плюсах написана.
Кодом людям нужно помогать!
Re[9]: Data scientist job
От: Слава  
Дата: 27.04.18 16:05
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Прямо сейчас ему явно не хватает кроссплатформенности. Я его плохо знаю, но написание кода должно быть удобно для непрограммистов, математиков или статистиков. Такое возможно? При всей моей любви к С++ я точно знаю, что на нём неспециалист писать не сможет. Можно ли на C# писать в чисто процедурном стиле? Чтобы не думать о классах, их иерархии и архитектуре приложения? Это тоже не нужно.


То есть вопрос в том, может ли математик в своеобычном их математическом стиле насрать нечитаемым кодом.

Да, может. Но так делать не надо.
Re[10]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 18:36
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до

A>
A> (trainSampleCount / 3).ForEach(i =>
A>            {
A>                img.DrawEx(trainData1, colors[0], i).
A>                    DrawEx(trainData1, colors[1], i).
A>                    DrawEx(trainData1, colors[2], i);
A>            });
A>


О, красиво. Интересно, почему стандартные туториалы такие уродливые.
Re[10]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 18:38
Оценка:
Здравствуйте, Слава, Вы писали:

С>То есть вопрос в том, может ли математик в своеобычном их математическом стиле насрать нечитаемым кодом.

С>Да, может. Но так делать не надо.

Нет такого вопроса. Всё как раз наоборот: математические вещи надо писать математическим языком.
Re[11]: Data scientist job
От: wamaco  
Дата: 27.04.18 19:10
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Нет такого вопроса. Всё как раз наоборот: математические вещи надо писать математическим языком.


Ок, а Паскаль для каких нужд по Вашему?
Re[11]: Data scientist job
От: Слава  
Дата: 27.04.18 19:49
Оценка:
Здравствуйте, Nuzhny, Вы писали:

С>>То есть вопрос в том, может ли математик в своеобычном их математическом стиле насрать нечитаемым кодом.

С>>Да, может. Но так делать не надо.

N>Нет такого вопроса. Всё как раз наоборот: математические вещи надо писать математическим языком.


Есть такой вопрос. Более того, когда программирование только начиналось — это уже было. Математики с их фортраном, который невозможно поддерживать и понять самому, если кода не видел месяц. Потом люди писать научились.

А сейчас видимо пришла новая волна людей, неспособных излагать свои мысли понятно для окружающих.
Re[12]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 20:40
Оценка:
Здравствуйте, wamaco, Вы писали:

N>>Нет такого вопроса. Всё как раз наоборот: математические вещи надо писать математическим языком.

W>Ок, а Паскаль для каких нужд по Вашему?

В мою юность для обучения школьников. Давай уже весь список известных языков выкладывай, что по одному спрашивать.
Re[12]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.04.18 20:42
Оценка:
Здравствуйте, Слава, Вы писали:

С>Есть такой вопрос. Более того, когда программирование только начиналось — это уже было. Математики с их фортраном, который невозможно поддерживать и понять самому, если кода не видел месяц. Потом люди писать научились.


Главное, чтобы работало. Мы — программисты это всё в человеческом виде в продакшен запилим. Ддля этого и работаемм.

С>А сейчас видимо пришла новая волна людей, неспособных излагать свои мысли понятно для окружающих.


Главное, что у тебя всё нормально.
Re[5]: Data scientist job
От: merge  
Дата: 28.04.18 06:52
Оценка:
Здравствуйте, De-Bill, Вы писали:

M>>>То есть проблемы C# он не скриптовый и под него все плохо с библиотеками

M>>можно расшифровать это?

DB>C# из-за статической типизации, тяжеловесности конструкций и т.д. не подходит для "интерактивной разработки"/REPL (типа как jupyter notebook для Python), а без этого работать с данными и их анализировать очень неудобно.

DB>С библиотеками для data science у него не то чтобы всё плохо. Их просто практически нет.

я не совсем знаком с интерактивной разработкой в Питоне, но в последних версиях VS появилась C# interactive где можно писать на лету любой код вроде
Re[13]: Data scientist job
От: wamaco  
Дата: 28.04.18 20:03
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>В мою юность для обучения школьников. Давай уже весь список известных языков выкладывай, что по одному спрашивать.


ню-ню..
Re[2]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 29.04.18 05:49
Оценка:
Здравствуйте, namespace, Вы писали:

N>Это прикладное направление, к разработке не имеет никакого отношения. Не следует путать инженерию и анализ статистики.

N>Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.

Останется. Excel уже миллион лет как доступен, но прикладники из социальных наук всё рвно R используют. Хотя первый все их нужды покрывает.

N>Для примера, у нас в ии физиологии научные сотрудники пишут сложные скрипты на матлабе, но при этом называть их программистами как-то неправильно.


А никто их программистами и не называет, сабж посмотри — data scientist'ы они. Ноьпрограммировать всё равно приходится.
Re[2]: Data scientist job
От: De-Bill  
Дата: 29.04.18 11:01
Оценка:
N>Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.

Спец. инструменты уже были и 5 и 10 лет назад. И сейчас есть, как вполне успешные (SAS Enterpise Miner и вокруг), так и не очень (Microsoft Machine Learning Studio). Но сейчас всё идёт к тому, что от инструментов уходят, а приходят к программированию со специализированными библиотеками, так как код писать удобнее, и код понятнее, чем громоздкие диаграммы.
Re: Data scientist job
От: The Passenger Голландия  
Дата: 01.05.18 14:17
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Интересная статья про эту специальность. Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.


N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.


что более интересно, что nvidia, которая сча по дефолту своими видеокартами и всякими кудами захватила рынок машинного обучения, в своих последних разработках не поддерживает винду
— они выпустили довольно мощный фрейм ворк — он на плюсах, вроде еще питон поддерживает ... но не ставится на винду
Весь мир — Кремль, а люди в нем — агенты
Re[5]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 02.05.18 15:33
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>С библиотеками для data science у него не то чтобы всё плохо. Их просто практически нет.


Не совсем так. Есть, как минимум, CNTK.
Re[5]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 02.05.18 15:33
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Я могу сделать это в 3 строки на Python, беру и делаю. На C# это заняло бы строк 20-30 со всякими вложенными циклами и подобной хренью


Если правильно C# готовить, то код получается практически 1 в 1 с питоновым. Я пробовал.
Re[9]: Data scientist job
От: Sharov Россия  
Дата: 02.05.18 18:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ты неверно понимаешь о чем речь. Когда мы пытаемся что то собрать — вот тут питон по полной, а с C# глухо, хотя кое какие подвижки последнее время есть, так как востребованность довольно высокая.


Глухо, потому что библиотек нет. Если бы ms лет 5 назад этим серьезно озаботилась, на уровне BCL, то C# был одним из главных игроков.

НС>А вот когда мы уже получили готовую обученную сетку, ее реализация для прода может быть и на C#, но скорее всего это будет вообще С++.


Я эту тему только начал курить, и могу ошибаться, но как я понимаю, обученная сетка -- это по сути статичная структура данных, множество чиселок? Разве нет, что и куда там переносить?
Кодом людям нужно помогать!
Re[10]: Data scientist job
От: novitk США  
Дата: 02.05.18 20:35
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Глухо, потому что библиотек нет. Если бы ms лет 5 назад этим серьезно озаботилась, на уровне BCL, то C# был одним из главных игроков.


Дело не только в библиотеках. В C# нет репла, быстрой перегрузки кода, динамики и переносимости.
Re[10]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 02.05.18 20:44
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Глухо, потому что библиотек нет.


Да, но не только. Библиотек не просто так нет. Сабжи — они далеко не программисты, поэтому им нужны предельно простые языки типа питона.
Re[11]: Data scientist job
От: Sharov Россия  
Дата: 02.05.18 21:09
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Да, но не только. Библиотек не просто так нет. Сабжи — они далеко не программисты, поэтому им нужны предельно простые языки типа питона.


Согласен, телодвижений у питона меньше, это колоссальный плюс. Хотя выше уже писал, что у меня перед глазами пример математика (~60 лет), который и на плюсах писал и на шарпе последние лет 5 пишет. В обычном процедурном стиле -- никаких паттернов, linq и т.д.. Класс и метод(ы). Что мешает остальным и более молодым делать также --
Кодом людям нужно помогать!
Re[12]: Data scientist job
От: novitk США  
Дата: 02.05.18 21:58
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

N>>В C# нет репла,

НС>Есть
C# Interactive? Недавно появилось и не сравним с jupyter. Поезд давно ушел.

N>> быстрой перегрузки кода,

НС>Есть
C# Interactive? Большинство кода будет лежат в dll, которые нужно будет строить отдельно.

N>> динамики

НС>Есть, но если ее активно использовать, то смысла в C# нет.
+1

N>> и переносимости.

НС>Есть.
.NET Core? Появилось недавно и не сравним с CPython. Поезд давно ушел.
Re[12]: Data scientist job
От: novitk США  
Дата: 02.05.18 22:05
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Согласен, телодвижений у питона меньше, это колоссальный плюс. Хотя выше уже писал, что у меня перед глазами пример математика (~60 лет), который и на плюсах писал и на шарпе последние лет 5 пишет. В обычном процедурном стиле -- никаких паттернов, linq и т.д.. Класс и метод(ы). Что мешает остальным и более молодым делать также --


Писать можно на чем угодно, вопрос стоит в продуктивности в области анализе данных.
Продуктивнее Питона сейчас имхо только Ехcel, но там ограничения по масштабируемости очень суровые так как UI гвоздями прибит.
Отредактировано 02.05.2018 22:06 novitk . Предыдущая версия .
Re[13]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 04:55
Оценка:
Здравствуйте, novitk, Вы писали:

N>>>В C# нет репла,

НС>>Есть
N>C# Interactive? Недавно появилось

Недавно? Больше 2 лет назад. А Roslyn, на базе которого оно сделано, еще раньше.

N> и не сравним с jupyter.


При чем тут язык? То ли в jupyter, то ли в zeppelin есть джава, а там с repl все печальнее.

N>>> быстрой перегрузки кода,

НС>>Есть
N>C# Interactive?

LWCG. Тоже будешь говорить, что недавно появилось?

N>>> и переносимости.

НС>>Есть.
N>.NET Core?

И Mono.
Re[6]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.05.18 09:18
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

DB>>С библиотеками для data science у него не то чтобы всё плохо. Их просто практически нет.

НС>Не совсем так. Есть, как минимум, CNTK.

Ну, это лишь для нейросетей. При всём при этом он во многом ориентирован на Питонистов (можно использовать вместе с numpy). Поэтому вряд ли этот один из многих тулкитов повысит процент использования C# среди исследователей данных.
Re[7]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 12:20
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Ну, это лишь для нейросетей.


Есть еще Accord.NET, но он пока слабоват.

N> При всём при этом он во многом ориентирован на Питонистов (можно использовать вместе с numpy).


C С# там тоже все неплохо и получается не сильно многословнее Питона.
Re[12]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 12:30
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Увы. Сами мс на шарп забили -- их DP библиотека (mnctk кажется) тоже на плюсах написана.


Для CNTK сейчас API для дотнета активно делается.
Re[14]: Data scientist job
От: novitk США  
Дата: 03.05.18 13:09
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

N>>C# Interactive? Недавно появилось

НС>Недавно? Больше 2 лет назад. А Roslyn, на базе которого оно сделано, еще раньше.
В Питоне оно всегда было, а шарп был не приспособлен к такому до последних версий.

N>> и не сравним с jupyter.

НС>При чем тут язык? То ли в jupyter, то ли в zeppelin есть джава, а там с repl все печальнее.
Скала там, в которой repl с рождения, но поддержка языка очень разная. Для питона есть визуализаторы всего на свете. Это можно было бы решить, но победил как всегда NIH и в результате имеем скальный форк, ака zeppelin.

N>>C# Interactive?

НС>LWCG. Тоже будешь говорить, что недавно появилось?
не знаю что это такое, гыгл не помог, дай ссылку pls. Hot code swap?

Коробочный репл в Скале надо перезапускать, если добавил функционал в jar. Если все развернуто в ИДЕА тоже. Она вроде путается что-то там сделать под отладчиком, но у нас это не работает. Возможно наши тараканы — используем свои плагины к компилятору и т.д. В Питоне ты просто делаешь reload, отладчик и ide не нужен.
Re[15]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 13:26
Оценка:
Здравствуйте, novitk, Вы писали:

НС>>Недавно? Больше 2 лет назад. А Roslyn, на базе которого оно сделано, еще раньше.

N>В Питоне оно всегда было

Ну было и было. Речь то про сейчас.

N>, а шарп был не приспособлен к такому до последних версий.


Последние это 3+, да? 12 лет с тех пор прошло, однако.

N>>>C# Interactive?

НС>>LWCG. Тоже будешь говорить, что недавно появилось?
N>не знаю что это такое, гыгл не помог, дай ссылку pls. Hot code swap?

Lightweight code generation. Да и до него никто не мешал сборки без файлов на диске генерить. Ну а с roslyn все стало совсем просто.
Re[8]: Data scientist job
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.05.18 13:28
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

N>> При всём при этом он во многом ориентирован на Питонистов (можно использовать вместе с numpy).

НС>C С# там тоже все неплохо и получается не сильно многословнее Питона.

Да, я знаю. Для С++ тоже есть API. И этого хорошо для библиотеки, но плохо для C#, потому что мало кто согласится на него пересаживаться, если можно пользоваться привычными инструментами.
Re[16]: Data scientist job
От: novitk США  
Дата: 03.05.18 14:47
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

N>>В Питоне оно всегда было

НС>Ну было и было. Речь то про сейчас.
Давай про "сейчас". Что мне надо сделать чтобы запустить "нормальный"(моно не катит) C# Interactive в Убунте?

N>>, а шарп был не приспособлен к такому до последних версий.

НС>Последние это 3+, да?
Да. С Roslyn(July 2015) можно вести отчет.

НС>Lightweight code generation. Да и до него никто не мешал сборки без файлов на диске генерить. Ну а с roslyn все стало совсем просто.

Есть функция аналогичная imp.reload для перегрузки сборки в С# interactive?
Re[6]: Data scientist job
От: jabberwock  
Дата: 03.05.18 19:43
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Не совсем так. Есть, как минимум, CNTK.


По тому, что я видел, он больше похож на "а мы тоже можем", этакий своеобразный продукт наличия синдрома NIH, поражающего многие компании.
В самом MS он тоже не везде прижился и некоторые группы по-тихому переходят на, к примеру, TensorFlow.

Вся надежда, как часто в последнее время у MS, на Гатри :)
Twas brillig, and the slithy toves
Did gyre and gimble in the wabe
Re[3]: Data scientist job
От: jabberwock  
Дата: 03.05.18 19:53
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>2. Потом модели переносятся в продакшен уже на С++, inference нейросетей работает на opencv_dnn (если CPU) и на TF + cudnn (если GPU). Для TF используется его С++ API. Для всех моделей есть С++ API, мы их вызываем иногда сотни раз на один кадр видео, поэтому тут вариантов нет.


Интересно, а есть ли место TensorFlow Serving в сходном с вашим процессе?
Он по идее как раз призван заменить работу с моделями напрямую, предоставляя нечто в виде application server для специально экспортированных/облегченных моделей и выставляя наружу gRPC, чтобы с ними общаться.
Или есть способы делать это лучше, "руками"?
Twas brillig, and the slithy toves
Did gyre and gimble in the wabe
Re[17]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 20:17
Оценка:
Здравствуйте, novitk, Вы писали:

НС>>Ну было и было. Речь то про сейчас.

N>Давай про "сейчас". Что мне надо сделать чтобы запустить "нормальный"(моно не катит) C# Interactive в Убунте?

https://msdn.microsoft.com/en-us/magazine/mt808499.aspx

N>>>, а шарп был не приспособлен к такому до последних версий.

НС>>Последние это 3+, да?
N>Да. С Roslyn(July 2015) можно вести отчет.

Roslyn это не язык, это набор инструментария.

НС>>Lightweight code generation. Да и до него никто не мешал сборки без файлов на диске генерить. Ну а с roslyn все стало совсем просто.

N>Есть функция аналогичная imp.reload для перегрузки сборки в С# interactive?

Перегружать ничего не нужно. Генеришь новую, старую прибирает GC.
Re[9]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 03.05.18 20:17
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Да, я знаю. Для С++ тоже есть API. И этого хорошо для библиотеки, но плохо для C#, потому что мало кто согласится на него пересаживаться, если можно пользоваться привычными инструментами.


А речь пока не про пересаживание, а про приобщение к теме огромной массы дотнет-разработчиков.
Re[18]: Data scientist job
От: novitk США  
Дата: 03.05.18 21:54
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

N>>Давай про "сейчас". Что мне надо сделать чтобы запустить "нормальный"(моно не катит) C# Interactive в Убунте?

НС>https://msdn.microsoft.com/en-us/magazine/mt808499.aspx
CSI вроде часть VS2015+/.NET, a не VSCode/Core?

N>>Да. С Roslyn(July 2015) можно вести отчет.

НС>Roslyn это не язык, это набор инструментария.
Ну да, только раньше этого инструментария не было и надо было запускать компилятор на каждый Enter.

НС>Перегружать ничего не нужно. Генеришь новую, старую прибирает GC.

Возможно наличие обьектов единовременно одного класса А из новой и старой сборки? В питоне возможно, но в статике мне сложно представить правильное поведение.
Re[19]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 04.05.18 13:20
Оценка:
Здравствуйте, novitk, Вы писали:

НС>>https://msdn.microsoft.com/en-us/magazine/mt808499.aspx

N>CSI вроде часть VS2015+/.NET, a не VSCode/Core?

Ты в курсе что такое .Net Core? И при чем тут VSCode?

НС>>Перегружать ничего не нужно. Генеришь новую, старую прибирает GC.

N>Возможно наличие обьектов единовременно одного класса А из новой и старой сборки?

Да. В рантайме это будут разные классы.
Re[20]: Data scientist job
От: novitk США  
Дата: 04.05.18 14:54
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ты в курсе что такое .Net Core? И при чем тут VSCode?

CSI это вроде компонента в полной студии, а не консольное приложение, работающее в Core, но может я и не прав.

N>>Возможно наличие обьектов единовременно одного класса А из новой и старой сборки?

НС>Да. В рантайме это будут разные классы.
t0: >Klass a = new Klass
t1: [пересоздал/перезагрусил сборку, где у А появился новый член f]
t2: >Klass b = new Klass
что будет при выполнении ">а.f", ">b.f", "b = a"?
Re[2]: Data scientist job
От: novitk США  
Дата: 04.05.18 16:53
Оценка:
Здравствуйте, serj.e, Вы писали:

SE>Жаль, что мир стал забывать годнейшую "APL–family". J, K, Q, kdb+, вот это все. Лучшие же ж инструменты для ворочания данными в плане скорости прототипирования подготовленным человеком.

И слава богу...Лучше потратить время на улучшение механики слепой печати, чем использовать их закорюки.

SE>Думаю, в первых рядах причин такого безобразия — уход в глухую проприетарщину и "камерность" соответствующих инструментов в свое время.

J вроде ОSS.
Re[21]: Data scientist job
От: Ночной Смотрящий Россия  
Дата: 04.05.18 20:32
Оценка:
Здравствуйте, novitk, Вы писали:

НС>>Ты в курсе что такое .Net Core? И при чем тут VSCode?

N>CSI это вроде компонента в полной студии, а не консольное приложение, работающее в Core, но может я и не прав.

Аналог CSI на базе Розлина я делал за час.

N>>>Возможно наличие обьектов единовременно одного класса А из новой и старой сборки?

НС>>Да. В рантайме это будут разные классы.
N>t0: >Klass a = new Klass
N>t1: [пересоздал/перезагрусил сборку, где у А появился новый член f]
N>t2: >Klass b = new Klass
N>что будет при выполнении ">а.f", ">b.f",

Что такое f и что означают твои записи?

N> "b = a"?


TypeCastException
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.