Вы подумали это все? А вот и нет =)
👍🏻 При кросс-ревью нет нагрузки на отдельного разработчика (тим-лида), который один должен пересмотреть все ревью.
👎🏻 Однако бывают случаи, когда разработчики, увидев, что более опытный разраб поставил аппрув, даже не уделяют внимания просмотру.
🚨 На такой случай есть суперский лайфхак: будучи тимлидом или ведущим разработчиком, вы можете специально допустить несколько ошибок в ревью, дабы проверить, кто добросовестно просматривает ваш код.
Всем тем, кто поставил аппрув не глядя, следует в доступной форме объяснить важность данной церемонии и попросить больше так не делать. Пара повторных подобных проверок (можно подговорить еще кого-нибудь из команды) — и ваш код будет просматриваться детальнее, чем сумка на таможне.
📮 В ходе повествования я упирался в слово «код», но такая практика может быть использована в команде абсолютно любого направления. И важно добавить, что под словом «команда» подразумевается отдельное направление (бэк, фронт, qa, дизайн и тд).
Правила всего 2:
1) желание развиваться и делать вашу работу все лучше и лучше;
2) команда от 3х человек и более (в случае 2х человек, само наличие ревью уже превращается в кросс-ревью).
Надеюсь, у всех вас на проектах существует кросс-ревью и вы ему рады. 😀
#teamlead #rdclr_frontend #rdclr_backend
👍🏻 При кросс-ревью нет нагрузки на отдельного разработчика (тим-лида), который один должен пересмотреть все ревью.
👎🏻 Однако бывают случаи, когда разработчики, увидев, что более опытный разраб поставил аппрув, даже не уделяют внимания просмотру.
🚨 На такой случай есть суперский лайфхак: будучи тимлидом или ведущим разработчиком, вы можете специально допустить несколько ошибок в ревью, дабы проверить, кто добросовестно просматривает ваш код.
Всем тем, кто поставил аппрув не глядя, следует в доступной форме объяснить важность данной церемонии и попросить больше так не делать. Пара повторных подобных проверок (можно подговорить еще кого-нибудь из команды) — и ваш код будет просматриваться детальнее, чем сумка на таможне.
📮 В ходе повествования я упирался в слово «код», но такая практика может быть использована в команде абсолютно любого направления. И важно добавить, что под словом «команда» подразумевается отдельное направление (бэк, фронт, qa, дизайн и тд).
Правила всего 2:
1) желание развиваться и делать вашу работу все лучше и лучше;
2) команда от 3х человек и более (в случае 2х человек, само наличие ревью уже превращается в кросс-ревью).
Надеюсь, у всех вас на проектах существует кросс-ревью и вы ему рады. 😀
#teamlead #rdclr_frontend #rdclr_backend
👍10❤2
Что такое нейронные сети
Хотелось бы начать с краткого экскурса в нейронные сети. Открыв любой интернет источник, можно очень часто увидеть такую формулировку: «Искусственные нейронные сети — это вычислительные модели, вдохновленные человеческим мозгом».
🧠 Нейронные сети действительно напоминают мозг человека (животного), как минимум следующими признаками:
1) нейронная сеть получает знания посредством обучения;
2) знания нейронной сети — это хранилище сил межнейронных связей, также известных, как веса нейронной сети.
Любые алгоритмы разрабатываются с целью решения каких-то задач, нейронные сети не стали исключением. Они позволяют выполнять задачи по осмыслению данных, сохраняя при этом свои другие свойства.
Сейчас мы их разберем.
#rdclr_backend #NN
Хотелось бы начать с краткого экскурса в нейронные сети. Открыв любой интернет источник, можно очень часто увидеть такую формулировку: «Искусственные нейронные сети — это вычислительные модели, вдохновленные человеческим мозгом».
🧠 Нейронные сети действительно напоминают мозг человека (животного), как минимум следующими признаками:
1) нейронная сеть получает знания посредством обучения;
2) знания нейронной сети — это хранилище сил межнейронных связей, также известных, как веса нейронной сети.
Любые алгоритмы разрабатываются с целью решения каких-то задач, нейронные сети не стали исключением. Они позволяют выполнять задачи по осмыслению данных, сохраняя при этом свои другие свойства.
Сейчас мы их разберем.
#rdclr_backend #NN
🔥2
Нейронные сети и их задачи. 1 — Классификация
Разберем подробнее каждый из типов задач.
Классификация
Все задачи классификации сводятся к обучению нейронной сети относить входные данные к определенному набору заранее известных классов.
Одна из самых первых задач, с которой сталкивается человек, который только начал изучать нейронные сети — это определение того, что представлено на изображении: кошка или собака.🐕🐈⬛
Это накладывает определенные ограничения на обучающую выборку, так как каждый набор данных должен быть помечен. Пример задачи с кошками и собаками говорит, что абсолютно к каждому изображению должно быть пояснение. А именно, к какому классу относится данное изображение (кошка или собака).
Подход, когда заранее известны выходные данные нейронной сети, называется «контролируемое обучение», или «обучение с учителем».
#rdclr_backend #NN
Разберем подробнее каждый из типов задач.
Классификация
Все задачи классификации сводятся к обучению нейронной сети относить входные данные к определенному набору заранее известных классов.
Одна из самых первых задач, с которой сталкивается человек, который только начал изучать нейронные сети — это определение того, что представлено на изображении: кошка или собака.🐕🐈⬛
Это накладывает определенные ограничения на обучающую выборку, так как каждый набор данных должен быть помечен. Пример задачи с кошками и собаками говорит, что абсолютно к каждому изображению должно быть пояснение. А именно, к какому классу относится данное изображение (кошка или собака).
Подход, когда заранее известны выходные данные нейронной сети, называется «контролируемое обучение», или «обучение с учителем».
#rdclr_backend #NN
🔥4👍2
Нейронные сети и их задачи. 2 и 3 — Кластеризация и Предиктивный анализ
🔋 Кластеризация
Кластеризация или группировка — это обнаружение сходства.
Так как неразмеченные данные составляют большинство данных в мире, то и требовалось разработать алгоритмы для работы с такими данными. Именно данный класс задач работает с ними.
🧐 Например, это может быть сравнение изображений или звуков, а также обнаружение аномалий. Для кластеризации крайне необходимо иметь большую выборку, ибо чем больше данных «прогонит» через себя нейронная сеть, тем точнее она будет.
💎 Предиктивный анализ
Предиктивный анализ по-другому часто называют задачей регрессии.
Классификация и кластеризация создают статический прогноз, который не меняется с течением времени. В то время как предиктивный анализ позволяет нейронным сетям предсказывать будущее, опираясь на прошлые данные.
🧐 Например, это может быть предсказание поломки оборудования, или проблем со здоровьем.
Дальше мы разберем популярные библиотеки и инструменты работы с нейтронными сетями. А пока — хорошего вечера! 🥟
#rdclr_backend #NN
🔋 Кластеризация
Кластеризация или группировка — это обнаружение сходства.
Так как неразмеченные данные составляют большинство данных в мире, то и требовалось разработать алгоритмы для работы с такими данными. Именно данный класс задач работает с ними.
🧐 Например, это может быть сравнение изображений или звуков, а также обнаружение аномалий. Для кластеризации крайне необходимо иметь большую выборку, ибо чем больше данных «прогонит» через себя нейронная сеть, тем точнее она будет.
💎 Предиктивный анализ
Предиктивный анализ по-другому часто называют задачей регрессии.
Классификация и кластеризация создают статический прогноз, который не меняется с течением времени. В то время как предиктивный анализ позволяет нейронным сетям предсказывать будущее, опираясь на прошлые данные.
🧐 Например, это может быть предсказание поломки оборудования, или проблем со здоровьем.
Дальше мы разберем популярные библиотеки и инструменты работы с нейтронными сетями. А пока — хорошего вечера! 🥟
#rdclr_backend #NN
🔥7
Инструменты под python для разработки нейронных сетей
Сегодня хотелось бы поговорить об инструментах и библиотеках, которые помогут в разработке и описании нейронных сетей.
Подавляющая доля разработок в области нейронных сетей приходится на язык программирования python 🐍 , поэтому и рассматривать будем решения под этот язык программирования.
🌪 jupyter notebook — это мощный инструмент для разработки и представления data science проектов. Он способен хранить код, графики, изображения и формулы в одном месте.
💨 google colab — бесплатная облачная среда от компании Google, позволяющая работать с jupiter блокнотами. Данный сервис предоставляет 12 ГБ ОЗУ и сессии до 12 часов. Так же, как и у остальных продуктов данной компании, реализована возможность совместного использования.
#rdclr_backend #NN
Сегодня хотелось бы поговорить об инструментах и библиотеках, которые помогут в разработке и описании нейронных сетей.
Подавляющая доля разработок в области нейронных сетей приходится на язык программирования python 🐍 , поэтому и рассматривать будем решения под этот язык программирования.
🌪 jupyter notebook — это мощный инструмент для разработки и представления data science проектов. Он способен хранить код, графики, изображения и формулы в одном месте.
💨 google colab — бесплатная облачная среда от компании Google, позволяющая работать с jupiter блокнотами. Данный сервис предоставляет 12 ГБ ОЗУ и сессии до 12 часов. Так же, как и у остальных продуктов данной компании, реализована возможность совместного использования.
#rdclr_backend #NN
🔥1
Библиотеки для работы с нейронными сетями
Теперь рассмотрим основные библиотеки для построения и обучения нейронных сетей.
1. 🍏 TensorFlow — платформа с открытым исходным кодом, разработанная компанией Google для создания приложений глубокого обучения. Он также поддерживает традиционное машинное обучение.
Изначально TensorFlow разрабатывался для больших числовых вычислений без учета глубокого обучения. Однако, он оказался очень полезным и для разработки глубокого обучения, и поэтому Google открыл его исходный код.
2. 🍎 PyTorch — это библиотека машинного обучения, разработанная командой Facebook AI Reseach. Полностью основана на python и использующая мощность графических процессоров. Это также одна из предпочтительных исследовательских платформ глубокого обучения, созданная для обеспечения максимальной гибкости и скорости.
Она известна тем, что предоставляет две наиболее важные функции, а именно: тензорные вычисления с сильной поддержкой графического процессора и построение глубоких нейронных сетей.
3. 🍐 Keras — это высокоуровневый API глубокого обучения. Keras относительно прост в освоении, так как предоставляет интерфейсы с высоким уровнем абстракции. Именно эту библиотеку рекомендуется начать изучать людям, которые только начинают освоение нейронных сетей.
P.S. В конце хотелось бы порекомендовать сайт, который будет полезен студентам и людям, работающим с нейронными сетями. Он позволяет строить базовые схемы нейронных сетей — alexlenail.me 🧩
#rdclr_backend #NN
Теперь рассмотрим основные библиотеки для построения и обучения нейронных сетей.
1. 🍏 TensorFlow — платформа с открытым исходным кодом, разработанная компанией Google для создания приложений глубокого обучения. Он также поддерживает традиционное машинное обучение.
Изначально TensorFlow разрабатывался для больших числовых вычислений без учета глубокого обучения. Однако, он оказался очень полезным и для разработки глубокого обучения, и поэтому Google открыл его исходный код.
2. 🍎 PyTorch — это библиотека машинного обучения, разработанная командой Facebook AI Reseach. Полностью основана на python и использующая мощность графических процессоров. Это также одна из предпочтительных исследовательских платформ глубокого обучения, созданная для обеспечения максимальной гибкости и скорости.
Она известна тем, что предоставляет две наиболее важные функции, а именно: тензорные вычисления с сильной поддержкой графического процессора и построение глубоких нейронных сетей.
3. 🍐 Keras — это высокоуровневый API глубокого обучения. Keras относительно прост в освоении, так как предоставляет интерфейсы с высоким уровнем абстракции. Именно эту библиотеку рекомендуется начать изучать людям, которые только начинают освоение нейронных сетей.
P.S. В конце хотелось бы порекомендовать сайт, который будет полезен студентам и людям, работающим с нейронными сетями. Он позволяет строить базовые схемы нейронных сетей — alexlenail.me 🧩
#rdclr_backend #NN
TensorFlow
An end-to-end open source machine learning platform for everyone. Discover TensorFlow's flexible ecosystem of tools, libraries and community resources.
👍1🔥1
Нейронные сети: принцип трансферного обучения
Одной из причин такого результата работы нейронной сети было то, что ей «не хватало» знаний о том, что изображено на конкретной картинке. Для того, чтобы исправить данную ситуацию, необходимо использовать уже готовое решение.
Transfer learning
♻️ Трансферное обучение — это повторное использование существующих моделей для решение новой задачи или проблемы.
Проще говоря, модель, обученная на одной задаче, перепрофилируется для второй задачи, связанной с первой, в качестве оптимизации, которая обеспечивает быстрый прогресс при моделировании второй задачи.
☝🏻 Применяя трансферное обучение, можно добиться более высокой производительности, чем при обучении с небольшим объемом данных. Данный метод настолько распространен, потому что редко можно с нуля обучить модель задачам, связанным с обработкой изображений или с обработкой естественного языка.
🌗 Возвращаясь к задаче раскраски черно-белых изображений, одним из решений было использование предобученной нейронной сети для классификации изображений и объединение выхода данной нейронной сети с собственной нейронной сетью на определенном этапе ее работы. Это и позволило получать более приемлемые результаты.
#rdclr_backend #NN
Одной из причин такого результата работы нейронной сети было то, что ей «не хватало» знаний о том, что изображено на конкретной картинке. Для того, чтобы исправить данную ситуацию, необходимо использовать уже готовое решение.
Transfer learning
♻️ Трансферное обучение — это повторное использование существующих моделей для решение новой задачи или проблемы.
Проще говоря, модель, обученная на одной задаче, перепрофилируется для второй задачи, связанной с первой, в качестве оптимизации, которая обеспечивает быстрый прогресс при моделировании второй задачи.
☝🏻 Применяя трансферное обучение, можно добиться более высокой производительности, чем при обучении с небольшим объемом данных. Данный метод настолько распространен, потому что редко можно с нуля обучить модель задачам, связанным с обработкой изображений или с обработкой естественного языка.
🌗 Возвращаясь к задаче раскраски черно-белых изображений, одним из решений было использование предобученной нейронной сети для классификации изображений и объединение выхода данной нейронной сети с собственной нейронной сетью на определенном этапе ее работы. Это и позволило получать более приемлемые результаты.
#rdclr_backend #NN
Микросервсиная архитекутера
Наверняка вы уже работали с приложением, построенным на микросервисах, а если нет, то слышали об этой архитектуре.
Можно взять и разбить приложение на микросервисы. Но это не даст гарантий, что проект будет легко поддерживать и масшабировать, гибко изменять код — рано или поздно вы столкнетесь с проблемами. Для решения таких проблем как раз и появились различные принципы программирования — SOLID, DRY, KISS, CQRS.
#rdclr_backend #Java
Наверняка вы уже работали с приложением, построенным на микросервисах, а если нет, то слышали об этой архитектуре.
Можно взять и разбить приложение на микросервисы. Но это не даст гарантий, что проект будет легко поддерживать и масшабировать, гибко изменять код — рано или поздно вы столкнетесь с проблемами. Для решения таких проблем как раз и появились различные принципы программирования — SOLID, DRY, KISS, CQRS.
#rdclr_backend #Java
👍4
Друзья, привет! На связи всё так же я, Павел, Java-разработчик Red Collar. 🤝
Решил потестить новый формат, чтобы текст легче воспринимался, а иллюстрации кода не терялись потом в поиске.
В общем, встречайте первую статью в Telegraph! Собрал здесь все принципы SOLID с примерами, подсветил сложные моменты, про всё рассказал подробно. 🦾
Читайте тут: https://telegra.ph/Open-closed--princip-otkrytosti--zakrytosti-05-16
#rdclr_backend #Java
Решил потестить новый формат, чтобы текст легче воспринимался, а иллюстрации кода не терялись потом в поиске.
В общем, встречайте первую статью в Telegraph! Собрал здесь все принципы SOLID с примерами, подсветил сложные моменты, про всё рассказал подробно. 🦾
Читайте тут: https://telegra.ph/Open-closed--princip-otkrytosti--zakrytosti-05-16
#rdclr_backend #Java
Telegraph
SOLID
Роберт С. Мартин сформулировал 5 принципов ООП: 🖐🏻 - Single Responsibility - Open-closed - Liskov substitution - Interface segregation - Dependency Inversion Данные принципы помогают избавиться от плохого кода, оптимизировать его и создавать гибкие приложения…
👍5
Друзья, всем привет! Это вновь я, Java-разработчик Red Collar Павел.
Продолжаю тестить Телеграф и рассказывать вам о фишках разработки. На этот раз — о Spring DATA JDBC.
Это классная альтернатива JPA, но у неё, конечно, есть свои подводные камни.
Читайте о них здесь: https://telegra.ph/Spring-DATA-JDBC-05-24
#rdclr_backend #Java
Продолжаю тестить Телеграф и рассказывать вам о фишках разработки. На этот раз — о Spring DATA JDBC.
Это классная альтернатива JPA, но у неё, конечно, есть свои подводные камни.
Читайте о них здесь: https://telegra.ph/Spring-DATA-JDBC-05-24
#rdclr_backend #Java
Telegraph
Spring Data JDBC
⚡️ В 2018 году разработчики Spring Data представили альтернативу JPA — Spring Data JDBC. Она стремится быть концептуально проще по трём критериям: 1) Никаких ленивых загрузок или кеширования. При получении сущности, она загружается сразу, как только выполняется…
🔥16👍1