интересно, а с выразительной системой типов, практично проверить что такая функция работает правильно без юнит тестов? Мне кажется что некоторые сущности проще описать типами а некоторые проще тестами (возможно без покрытия всех вариантов). Буду рад если ошибаюсь.
Обычно делают, если меняется один файл и пересобирается тест, с Makefile 1 минута на make, + 3 с на сборку, с nunja — 1 секунда на ninja + 3 с на сборку.
С таким подходом лучше с scratch начинать, там нетривиальные концепции представленные в понятном виде для 7-ми летнего ребенка. Но неужели то что для печати необходимо вызвать функцию становится неопределимым препятствием для студентов?
Выгоднее брать того кто работу сделает и с командой уживется, независимо от пола/возраста/роста/etc. Команду и так непросто собрать, нет смысла уменьшать множество кандидатов.
Сильно от задачи зависит, часто в CPU упирается для подготовки и изменения данных. Но в целом да, как раз для ML Xeonы (как и Threadripper) подходят — больше pci-e линий/слотов, больше памяти, ядер.
В нейросетях задача стоит даже не найти глобальный минимум (там сетка уже давно переобучилась) а найти решение которое будет работать на новых данных. Обычно результаты лучше когда сеть большая но достаточно регуляризованная, плюс обучение с маленьким батчом/большим LR чтобы внести достаточно шума и найти широкий минимум вместо узкого/глубокого. Оптимизаторы второго порядка тут либо плохо/не работают либо больше шанс получить результат хуже на тестовом датасете.
Но независимо от применимости к обучению сеток, спасибо за пост, интересно почитать.
С керасом удобнее взять готовые keras.callbacks.ModelCheckpoint и TensorBoard (и часто LearningRateScheduler). Возможно стоит уменьшить Adam lr, часто значения около 10e-4… 10e-5 работают лучше. Ну и как следующий уровень — попробовать подходы с GAN, но там сложнее все обучить.
При выборе таких плат стоит в первую очередь обращать внимание на программную поддержку, тут оригинальные малинки значительно выигрывают у россыпи плат чуть дешевле на Allwinner.
интересно, а с выразительной системой типов, практично проверить что такая функция работает правильно без юнит тестов? Мне кажется что некоторые сущности проще описать типами а некоторые проще тестами (возможно без покрытия всех вариантов). Буду рад если ошибаюсь.
model.add(Dense(hidden_dims))
model.add(Dense(1))
без нелинейности после первого уровня оба уровня заменяются одним Dense(1)
Часто такие расчеты идут на дни/недели, особенно когда данные терабайтные.
Не уверен что плюсики стоят настолько высоко в шкале ценностей автора
в Австралии доступ к медицине например, разница с гражданством только нет права голосовать и служить в армии.
Но независимо от применимости к обучению сеток, спасибо за пост, интересно почитать.
www.seeedstudio.com/Sipeed-Maixduino-Kit-for-RISC-V-AI-IoT-p-4047.html
github.com/kendryte
было бы интересно услышать если кто уже сталкивался.