TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Adept | Машинное обучение | Открытое ПО

6 Jul, 12:21

Telegram'da ochish Ulashish Shikoyat qilish

В NumPy и PyTorch поддерживаются тензоры, у которых одна или несколько осей имеют нулевую длину.
Например:
np.zeros((0, 24)) # форма (0, 24)
torch.empty((17, 0)) # форма (17, 0)

Это полноценные объекты, с которыми выполняются стандартные операции (сложение, умножение, транспонирование, конкатенация при согласованных размерностях). Такие тензоры часто называют «пустыми» (empty tensors), но они не являются None и не требуют специальной обработки на каждом шагу алгоритма.


🔍 Зачем они нужны?
Главное преимущество — единообразие кода. Вместо проверок if data is not None на каждом этапе вы создаёте пустой тензор с нулевой длиной по нужной оси и продолжаете работать с ним как с обычными данными. Финальная проверка (например, наличие хотя бы одного элемента в пакете) откладывается до самого конца пайплайна.

💡 Пример из загрузки датасетов
При сборке батча некоторые примеры могут не иметь разметки. Вместо пропуска или вставки заглушек вы формируете тензор формы (0, num_features) и объединяете его с остальными через torch.cat – операция корректно обрабатывает пустой тензор, не нарушая размерность. Лишь на этапе подсчёта функции потерь вы проверяете, что размер батча > 0.

⚙️ Другие сценарии использования
- Обработка последовательностей переменной длины – пустые последовательности удобно представлять тензорами с нулевой длиной.
- Фильтрация данных – если после условий выборки не осталось элементов, результатом становится пустой тензор.
- Агрегация в группах – группы без данных возвращают пустые тензоры, упрощая универсальные функции редукции.


🚧 Проблема при портировании на Adept
В Adept концепция тензоров с нулевой размерностью не поддерживается. Библиотека проверяет размерности на этапе выполнения и генерирует исключение при обнаружении оси длины 0. Это существенно затрудняет перенос кода из NumPy/PyTorch.

Я столкнулся с этим при реализации DataLoader для тренировки модели YOLO. В исходной PyTorch-версии пустые тензоры свободно использовались для тренировочных данных без разметки. При адаптации под Adept пришлось вносить дополнительные проверки при формировании пакета.

Оптимальным решением будет расширить Adept поддержкой нулевых размерностей по аналогии с NumPy и PyTorch. Это позволит писать более лаконичный и надёжный код, избегая избыточных проверок и упрощая миграцию проектов между фреймворками. Также это снизит порог входа для новых пользователей.

#NumPy #PyTorch #Adept #Tensor #DataLoader

108 0 0 2
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot