-
Балансировка классов в pytorch с помощью WeightedRandomSampler
В машинном обучении постоянно встречается эта проблема - в датасете, на котором ты обучаешь нейросеть (или любую другую ML модель) - разное количество записей для разных классов. Иногда прям сильно разное. Если оставить это как есть, то нейросеть толком не выучит редкие классы и не научится их отличать.
Два основных подхода к решению этой проблемы - умножать loss для редких классов пропорционально их редкости, чтобы высокий loss заставлял сетку учиться на них и чаще читать записи редких классов, чтобы они перестали быть редкими. Эта статья про второй подход.
-
Изящный unpacking в python
Частенько бывает нужно проитерироваться по большой коллекции в которой лежат другие коллекции.
Возьмем для примера вот эту:
In [32]: L = [ [i] for i in range(10) ] In [33]: L Out[33]: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]
Очевидный способ пробежать по вложенным элементам - это чтение по индексу: