• Балансировка классов в 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]]

    Очевидный способ пробежать по вложенным элементам - это чтение по индексу:

    Читать дальше →