BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
тут соберу полезные ссылки по #kubernates:

- официальный сайт проекта
https://kubernetes.io/

- Введение в Kubernetes - Discovery
https://www.youtube.com/watch?v=L3tgJXsMUTU

- Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)
https://habr.com/ru/company/flant/blog/459326/

- Наш опыт с Kubernetes в небольших проектах
https://www.youtube.com/watch?v=CgCLPYJRxbU

- Автомасштабирование и управление ресурсами в Kubernetes
https://www.youtube.com/watch?v=10ZR-fbyuSY

- Расширяем и дополняем Kubernetes
https://www.youtube.com/watch?v=6VHk1R1TNgk

- Базы данных и Kubernetes
https://www.youtube.com/watch?v=BnegHj53pW4

- Эксплуатация микросервисов
https://www.youtube.com/watch?v=g9cgppj0gKQ

- Мониторинг и Kubernetes
https://www.youtube.com/watch?v=zj6SlzzBRaA

- Лучшие практики CI/CD с Kubernetes и GitLab
https://www.youtube.com/watch?v=G3nELxmECd8

- To run or not to run a database on Kubernetes: What to consider
https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider

- What is Kubernetes? COURSE
https://azure.microsoft.com/en-us/topic/what-is-kubernetes/

- Kubernetes Deployments: The Ultimate Guide
https://semaphoreci.com/blog/kubernetes-deployment

- небольшой курс на русском
https://www.youtube.com/playlist?list=PLg5SS_4L6LYvN1RqaVesof8KAf-02fJSi
нарвался недавно на задачу несбалансированных классов
хорошо просвятили вот эти вот видео

- Несбалансированные данные
https://ru.coursera.org/lecture/supervised-learning/niesbalansirovannyie-dannyie-M97UX

- Метрики качества классификации
https://ru.coursera.org/lecture/vvedenie-mashinnoe-obuchenie/mietriki-kachiestva-klassifikatsii-2-fPkI2

- Многоклассовая классификация
https://ru.coursera.org/lecture/vvedenie-mashinnoe-obuchenie/mnoghoklassovaia-klassifikatsiia-P9Zun

а так же несколько статей
- 8 тактик для борьбы с несбалансированными классами в вашем наборе данных машинного обучения
https://www.machinelearningmastery.ru/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/

- Assessing and Comparing Classifier Performance with ROC Curves
https://machinelearningmastery.com/assessing-comparing-classifier-performance-roc-curves-2/

- Лучшая метрика для оценки точности классификационных моделей
http://datareview.info/article/luchshaya-metrika-dlya-ocenki-tochnosti-klassifikacionnyx-modelej/

- Оценка классификатора (точность, полнота, F-мера)
http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html

- ну и просто неплохая статья про логистическую регрессию
"Как легко понять логистическую регрессию"
https://habr.com/ru/company/io/blog/265007/

А вообще есть либа под sklearn для небалансных датафрэймов
https://imbalanced-learn.readthedocs.io/en/stable/api.html
#ml
https://www.facebook.com/privacy/checkup/?source=settings
оказывается в фэйсбуке есть очень удобная вкладка где можно отстроить все вопрсы конфиденциальности. проверить все что включено. есть даже опция запрета определения себя на фотографиях. так же можно выключить поиск по номеру телефона и имэйлу

#privacy
Forwarded from Spark in me (Alexander)
Notes from captain obvious:

Сomparing two GPUs with Tensor Cores, one of the single best indicators for each GPU’s performance is their memory bandwidth;

Most computation time on GPUs is memory access;

A100 compared to the V100 is 1.70x faster for NLP and 1.45x faster for computer vision;

Tesla A100 compared to the V100 is 1.70x faster for NLP and 1.45x faster for computer vision;

3-Slot design of the RTX 3090 makes 4x GPU builds problematic. Possible solutions are 2-slot variants or the use of PCIe extenders;

4x RTX 3090 will need more power than any standard power supply unit on the market can provide right now (this is BS, but power connectors may be an issue - I have 2000W PSU);

With BF16 precision, training might be more stable than with FP16 precision while providing the same speedups;

The new fan design for the RTX 30sV series features both a blower fan and a push/pull fan;

350W TDP;

Compared to an RTX 2080 Ti, the RTX 3090 yields a speedup of 1.57x for convolutional networks and 1.5x for transformers while having a 15% higher release price. Thus the Ampere RTX 30s delivers a pretty substantial improvement over the Turing RTX 20s series;

PCIe 4.0 and PCIe lanes do not matter in 2x GPU setups. For 4x GPU setups, they still do not matter much;

NVLink is not useful. Only useful for GPU clusters;

No info about power connector. But I believe the first gaming gpus use 2*6 pin plus maybe some adapter;

Despite heroic software engineering efforts, AMD GPUs + ROCm will probably not be able to compete with NVIDIA due to lacking community and Tensor Core equivalent for at least 1-2 years;

You will need +50Gbits/s network cards to gain speedups if you want to parallelize across machines;

So if you expect to run deep learning models after 300 days, it is better to buy a desktop instead of using AWS spot instances (also fuck off AWS and Nvidia with sla about data centers);
внезапно оказался в сфере RTOS и выбора под однокристальные встраиваемые системы. #Cpp #os

и в результате набрел на хороший сказ про scmRTOS. базовые понятия и хороший ввод на русском языке с особенностей реалтаймовых операционок тут
http://caxapa.ru/thumbs/729136/scmRTOS.ru.pdf
немного про строковые типы, почему их два, какие нюансы есть и какие гарантии предоставляет #rust
https://fasterthanli.me/articles/working-with-strings-in-rust
рассказано просто супер. с подробностями и сравнением с #c
Суперкомпилятор
принимает исходный код алгоритма плюс некоторые данные о входных параметрах и возвращает новый исходный код, который исполняет свою задачу на этих данных быстрее или является лучше исходного алгоритма по каким-то другим показателям

https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BF%D0%B5%D1%80%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
Forwarded from Блог*
#prog #rust #моё

В Rust в некоторых случаях можно использовать анонимный лайфтайм ('_). Практика показывает, что эта фича некоторым не до конца понятна, поэтому я решил написать об этом подробнее.

Времена жизни — пожалуй, именно та фича, которая больше всего делает Rust непохожим на мейнстримные языки программирования. В частности, их синтаксис ('identifier) — это то, что приходит первым на ум тому, кто уверяет, что у Rust нечитаемый синтаксис. Тем не менее, если взглянуть на код программы на Rust, то этих времён жизни можно увидеть очень мало. Казалось бы, как так может быть, если учесть, что каждая ссылка параметризована временем жизни, а ссылки в Rust используются достаточно активно? Дело в том, что бо́льшая часть вариантов использования времён жизни подпадает под один из достаточно простых паттернов, для которых компилятор в состоянии вывести отсутствующие времена жизни сам. Это называется lifetime elision, и правила, по которым оно происходит, перечислены в растономиконе.

Раскрытие сокращённой записи начинается с введения нового явного параметра для каждого аргумента, тип которого параметризован временем жизни (далее ВЖ), но для которого конкретное значение ВЖ не указано. Например, если у нас функция

fn do_something(a: &mut u32, b: (&u32, &u32), c: Cow<str>) { ... }

, то после первого шага преобразования она выглядит так:

fn do_something<'lt1, 'lt2, 'lt3, 'lt4>(a: &'lt1 mut u32, b: (&'lt2 u32, &'lt3 u32), c: Cow<'lt4, str>) { ... }

Обратите внимание, это работает не только с ссылками.

Далее компилятор пытается приписать времена жизни возвращаемому типу. В обычном коде произвольные времена жизни не материализуются из ничего, они появляются из ссылок на имеющиеся значения. Логично предположить, что если у тебя есть функция с ВЖ, то ВЖ возвращаемого типа должно быть связано с аргументами. Если аргументов нет вовсе, то компилятор откажется компилировать функцию. Если аргумент есть только один и с одним обобщенным параметром ВЖ, то возвращаемый тип параметризуется этим ВЖ для всех возможных обобщённых параметров. Например, если есть функция

fn first_and_second(arg: &(u32, u32, u32))- > (&u32, &u32) {
(&arg.0, &arg.1)
}

, то её развёрнутый тип будет

fn first_and_second<'a>(arg: &'a (u32, u32, u32))- > (&'a u32, &'a u32) {
(&arg.0, &arg.1)
}

Что же делать, если аргументов несколько? В случае, когда функция принимает &self или &mut self, ВЖ возвращаемого типа приравнивается ВЖ self. Из этого, кстати, следует несколько неожиданный результат, что нижеприведённый код не компилируется:

struct Foo;

impl Foo {
fn use_str(&self, s: &str) -> &str {
s
}
}

Если расписать тип полностью, то станет понятно, почему:

struct Foo;

impl Foo {
fn use_str<'foo, 's>(&'foo self, s: &'s str) -> &'foo str {
s
}
}

Действительно, lifetime elision приводит к тому, что возвращаемая строка имеет то же ВЖ, что и self, но в теле функции используется строка с другим ВЖ 's, которое никак не связано с 'foo. Для того, чтобы решить эту проблему, нужно явно ввести обобщённый параметр времени жизни и указать, что он один и тот же у аргумента и возвращаемого значения:

struct Foo;

impl Foo {
fn use_str<'s>(&self, s: &'s str) -> &'s str {
s
}
}

Такой код уже компилируется.