Как стать автором
Обновить
0
0.9

Пользователь

Отправить сообщение

А я думал, что импортозамещение, это производство товара в стране, такое что позволяет избавиться от импорта, что кстати в дальнейшем приводит к рецессии экономики. Если вдруг в Россию вдруг перестанут завозить ПЛИС, сможет ли Николай Ковач задизайнить плату? И еще, вы говорите про импортозамещение, а почему тогда не используются Воронежские ПЛИСины?

А можно все таки узнать, в чем собственно состоит замещение? Комплектующие - иностранные, ПО с помощью которого разводили плату скорее всего тоже.

Не знал, что код-ревью называется самоутверждением. Если человек выкладывает статью, следует ожидать критику.

Я дал советы человеку, чтобы он лучше знал плюсы, а не чтобы читателю было легче. Тем более всегда можно сделать пояснения в непонятных моментах. Ну и понять что transform - это аналог map или zip в любом другом языке не сложно.


...не надо особо заморачиваться с хедерами и ссылками на вектора...

В плюсах либо сразу писать нормально либо никак.

За нейронку - 5, за С++ - 2.
1. Вы передаете вектора в функцию не по ссылке.
2. void аргументах это уже не нужно даже в современном С, не говоря уже о С++.
3. for (size_t layer = 0; layer <= layer_count; layer++) - здесь UB.
4. Часть циклов можно переписать на алгоритмы типа:
std::transform(expected.begin(), expected.end(),
layers[layer_count + 1].begin(), delta[layer_count].begin(),
[](double t, double y) {return y * (1 - y) * (t - y);});

Я к тому, что С++ - в данном случае неудачный вариант для изучения нейросети. Потому что здесь нельзя так расслаблено писать. Если бы на питоне дали пример, вопросов бы не было.

P.S. Открыл исходники. Вы в целом недавно начали изучать плюсы.
using namespace std да еще и в хедере - это расстрельная статья.

Вы бросаете исключения, а где вы их перехватываете? Или у вас план вызывать std::terminate при каждом исключении? Тогда вопросов нет. И там где надо не бросаете, например при делении.

У вас магические числа при том что есть дефайны. Кстати о них. Дефайны - это С, но ни как не С++. Для констант лучше constexpr и enum class.

Разбирать на самом деле еще очень много, я описал только что бросилось в глаза.
В общем если эту лабу приняли, у меня серьезные вопросы к компетенциям препода.

А вы живете в Чехии? Иначе почему вы PyCharm назвали отечественным продуктом?

Прочитал, приемуществ так и не увидел. Опять же, я наверное уже не мог всерьез читать после фраз про то как IDE отжирают много ресурсов.

А можете подробно объяснить приемущества Eclipse + make, вместо того же CMake + VSCode/Qt?

C++, напротив, позволяет вручную управлять памятью с помощью соответствующих ключевых слов и функций: new, delete, malloc и free.

Уже давно ручное управление памятью является bad practice. RAII-концепция захватывает все больше вещей в С++, начиная с просто умных указателей, заканчивая автоматическим управлением потоками - std::jthread. Проблем конечно хватает даже с умными указателями. Но так манипулировать тоже не стоит.

Не уверен как в процессорах общего назначения, но в DSP-процах или там где есть DSP-сопроцессор, там умножение с накоплением выполняется за 1 такт.

Вы уже сбросили до 3-4к долларов? И сеньор - это уже не рядовой разраб. Т.е. уже по вашим словам большая часть разрабов только подбираются к 3к?

Скажите, где в России условный айтишник зарабатывает 4-5к долларов на руки в месяц? Реллокацию не упоминайте, т.к. это резко выходит за рамки "спокойно".

ФПМИ. Учеба учитывает что уже большая часть студентов работает, поэтому в расписании есть 3 дня без пар. Помимо обязательных предметов, можно взять сколько угодно других, даже с других кафедр, только надо договариваться с кафедрой. Я взял пару курсов из бакалавриата. В целом за год набрал больше знаний и практики, чем за года 3 на работе.

Ну и следует понимать, чтобы все успевать, в целом забываешь что такое отдельный выходной. Ты делаешь что-то всегда и в любое время.

В 30 лет поступил на платную очную магистратуру МФТИ. Учебу оплатил бизнес, которому я делаю дипломный проект, так-же они платят зп, небольшую, но я и работаю там удаленно на четверть ставки.

А кто вам сказал, что компилятор должен проверять еще и схемотехнику?

Напрямую в регистр можно записать случайно бит где вместо Open Drain поставится Push-Pull и сгорит вход. А теперь смотрим за руками: пишем компайл-тайм функцию записи в регистр, проверяем внутри допустимость записи для того или иного регистра. Вуаля - вход не спален. Ну и где безопаснее?

  • Функции: обеспечивает надежную передачу данных, контроль ошибок, сегментацию и повторную сборку данных. Гарантирует, что данные передаются без потерь и дубликатов.

  • Примеры: TCP (Transmission Control Protocol), UDP (User Datagram Protocol).

UDP не относится ни к чему, что приведено в функциях.

Да тут даже проблема не в малом приросте производительности. Эти методы в целом нереализуемы на практике - там константа требует памяти больше, чем есть на всей планете.

Вы для всех float делаете проверку на NaN?

В случае с геттерами, сеттерами. Их не нужно городить в каждом классе. Они нужны только для того, что если у вас в классе должен сохраняться инвариант, и чтобы пользователь не мог его нарушить. А теперь такой вопрос, какой инвариант может нарушиться если мы доступ к position сделаем public? Что можно сломать? И зачем тогда нужны методы get/set?

Информация

В рейтинге
1 612-й
Зарегистрирован
Активность

Специализация

Software Developer, Embedded Software Engineer
Middle