cookie

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك. بالنقر على "قبول الكل"، أنت توافق على استخدام ملفات تعريف الارتباط.

avatar

Data Science | Вопросы собесов

Разбираем вопросы с собеседований на Data Scientist. Сайт: easyoffer.ru Реклама: @easyoffer_adv

إظهار المزيد
مشاركات الإعلانات
2 997
المشتركون
+524 ساعات
+147 أيام
+7630 أيام

جاري تحميل البيانات...

معدل نمو المشترك

جاري تحميل البيانات...

📌 Какие есть методы ускорения нейросетей ? 💬 Спрашивают в 14% собеседований Ускорение нейронных сетей становится все более важным, поскольку модели становятся сложнее и требуют больше вычислительных ресурсов. Существуют различные методы и техники, которые можно использовать для ускорения нейронных сетей на этапах обучения и инференса. 1️⃣ Параллелизация и распределенные вычисленияData Parallelism (Параллелизм данных): Разделение данных на батчи и параллельная обработка этих батчей на нескольких устройствах (например, GPU). ➕ Model Parallelism (Параллелизм модели): Разделение модели на части и параллельное выполнение этих частей на разных устройствах. ➕ Distributed Training (Распределенное обучение): Обучение модели на кластере вычислительных узлов с помощью фреймворков, таких как Horovod, TensorFlow Distributed, PyTorch Distributed.
import horovod.tensorflow as hvd
import tensorflow as tf

# Инициализация Horovod
hvd.init()

# Конфигурация GPU для Horovod
gpus = tf.config.experimental.list_physical_devices('GPU')
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)
if gpus:
    tf.config.experimental.set_visible_devices(gpus[hvd.local_rank()], 'GPU')

# Создание и компиляция модели
model = create_model()
opt = tf.keras.optimizers.Adam(0.001 * hvd.size())
opt = hvd.DistributedOptimizer(opt)

model.compile(loss='categorical_crossentropy', optimizer=opt)

# Обучение модели
model.fit(dataset, epochs=10, callbacks=[hvd.callbacks.BroadcastGlobalVariablesCallback(0)])
2️⃣ Сжатие моделиPruning (Обрезка): Удаление ненужных или малоактивных весов в сети, что уменьшает количество вычислений. ➕ Quantization (Квантизация): Преобразование весов и активаций модели из float32 в более компактные форматы, такие как int8. ➕ Low-Rank Factorization (Факторизация низкого ранга): Аппроксимация матриц весов низкоранговыми матрицами для уменьшения количества параметров.
import tensorflow as tf

model = tf.keras.models.load_model('model.h5')

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
    f.write(tflite_model)
3️⃣ Аппаратные ускорителиGPUs (Graphics Processing Units): Использование графических процессоров для параллельных вычислений. ➕ TPUs (Tensor Processing Units): Аппаратные ускорители, специально разработанные для работы с нейронными сетями, доступные в Google Cloud. ➕ FPGAs (Field Programmable Gate Arrays): Настраиваемые аппаратные ускорители, которые могут быть оптимизированы для конкретных вычислительных задач. 4️⃣ Оптимизация графа вычисленийGraph Optimization (Оптимизация графа): Упрощение и переупорядочивание операций в графе вычислений для уменьшения задержек и увеличения производительности. ➕ Kernel Fusion (Слияние ядер): Объединение нескольких операций в одно ядро для уменьшения накладных расходов на передачу данных. 5️⃣ Использование более эффективных архитектурEfficientNet: Семейство моделей, оптимизированных для баланса между точностью и производительностью. ➕ MobileNet: Архитектура, разработанная для работы на мобильных устройствах с ограниченными ресурсами. ➕ SqueezeNet: Модель с небольшим количеством параметров, но высокой точностью. Эти методы помогают улучшить производительность, уменьшить время обучения и инференса, а также снизить затраты на вычислительные ресурсы. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых
إظهار الكل...
👍 1
🤔 Какой метод используется для нормализации данных?Anonymous voting
  • Min-Max Scaling
  • Standardization
  • Log Transformation
  • Все вышеперечисленные
0 votes
📌 Какие есть вариации anchor-free детекторов ? 💬 Спрашивают в 14% собеседований Anchor-free детекторы — это детекторы объектов, которые не используют заранее определенные анкор-боксы для предсказания объектов на изображении. Вместо этого они используют другие методы для определения местоположения и размера объектов. 1️⃣ CenterNet Определяет центры объектов с помощью тепловых карт (heatmaps) и предсказывает размеры и оффсеты объектов относительно центров. Основные этапы: 1️⃣ Генерация тепловой карты центров объектов. 2️⃣ Регрессия размеров объектов (ширина и высота). 3️⃣ Регрессия смещений центров (оффсетов).
import torch
from torchvision import models, transforms
from PIL import Image

# Загрузка предобученной модели CenterNet
model = torch.hub.load('facebookresearch/centernet', 'ctdet_coco_dla_2x', pretrained=True)
model.eval()

# Преобразование изображения
def transform_image(image_path):
    image = Image.open(image_path).convert("RGB")
    transform = transforms.Compose([
        transforms.Resize((512, 512)),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.40789654, 0.44719302, 0.47026115], std=[0.28863828, 0.27408164, 0.27809835]),
    ])
    return transform(image).unsqueeze(0)

# Пример изображения
image_path = "example.jpg"
image = transform_image(image_path)

# Предсказание
with torch.no_grad():
    detections = model(image)

print(detections)
2️⃣ CornerNet Определяет объекты путем предсказания их углов (верхний левый и нижний правый углы) и затем соединяет эти углы для формирования bounding boxes. Основные этапы: 1️⃣ Генерация тепловых карт для углов объектов. 2️⃣ Сопряжение углов для формирования bounding boxes. 3️⃣ Регрессия смещений углов (оффсетов). 3️⃣ ExtremeNet Определяет объекты путем предсказания их экстремальных точек (верхняя, нижняя, левая и правая точки) и затем соединяет эти точки для формирования bounding boxes. Основные этапы: 1️⃣ Генерация тепловых карт для экстремальных точек. 2️⃣ Сопряжение точек для формирования bounding boxes. 3️⃣ Регрессия центра bounding box-а. 4️⃣ FCOS (Fully Convolutional One-Stage Object Detection) Предсказывает bounding boxes и классы объектов для каждой позиции на сетке, используя полностью сверточные слои, без использования anchor box-ов. Основные этапы: 1️⃣ Регрессия расстояний до границ bounding box-а от каждой позиции. 2️⃣ Классификация объектов. 3️⃣ Использование центровки (center-ness) для улучшения точности.
import torch
from torchvision import models, transforms
from PIL import Image

# Загрузка предобученной модели FCOS
model = torch.hub.load('ultralytics/yolov5', 'fcos')
model.eval()

# Преобразование изображения
def transform_image(image_path):
    image = Image.open(image_path).convert("RGB")
    transform = transforms.Compose([
        transforms.Resize((512, 512)),
        transforms.ToTensor(),
    ])
    return transform(image).unsqueeze(0)

# Пример изображения
image_path = "example.jpg"
image = transform_image(image_path)

# Предсказание
with torch.no_grad():
    detections = model(image)

print(detections)
5️⃣ SAPD (Scale-Aware Pixel-wise Object Detection) Использует подход с пиксельной регрессией объектов, учитывая масштабы объектов и их контекст. Он предсказывает объекты на уровне пикселей, что позволяет избегать использования anchor box-ов. Основные этапы: 1️⃣ Предсказание объектов на уровне пикселей. 2️⃣ Учет масштаба объектов и их контекста. 3️⃣ Классификация объектов и регрессия bounding boxes. Эти подходы предоставляют альтернативные методы для детекции объектов, которые могут быть более эффективными и точными в некоторых сценариях по сравнению с традиционными методами, основанными на anchor box-ах. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых
إظهار الكل...
🤔 Какой алгоритм используется для прогнозирования временных рядов?Anonymous voting
  • ARIMA
  • Decision Tree
  • K-Means
  • Naive Bayes
0 votes
📌 Как происходит детекция без anchor box-ов ? 💬 Спрашивают в 14% собеседований Детекция объектов без использования anchor box-ов — это подход, при котором модель обнаружения объектов не опирается на заранее заданные рамки (анкор-боксы) для предсказания местоположения и размера объектов. В таких методах используются другие механизмы для определения границ объектов. 1️⃣ CenterNet Это метод детекции объектов, который определяет центры объектов на основе тепловых карт (heatmaps) и предсказывает размеры и оффсеты (смещения) объектов от центров. Основные этапы: 1️⃣ Генерация тепловой карты центров объектов: Модель предсказывает тепловую карту, где пиксели с высокими значениями соответствуют центрам объектов. 2️⃣ Регрессия размеров объектов: Модель предсказывает размеры объектов (ширина и высота) для каждого центра. 3️⃣ Регрессия оффсетов: Модель предсказывает смещения центров относительно координат сетки. Преимущества: ➕ Простота реализации. ➕ Высокая точность на многих задачах.
import torch
from torchvision import models, transforms
from PIL import Image
import matplotlib.pyplot as plt

# Загрузка предобученной модели CenterNet
model = torch.hub.load('facebookresearch/centernet', 'ctdet_coco_dla_2x', pretrained=True)
model.eval()

# Преобразование изображения
def transform_image(image_path):
    image = Image.open(image_path).convert("RGB")
    transform = transforms.Compose([
        transforms.Resize((512, 512)),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.40789654, 0.44719302, 0.47026115], std=[0.28863828, 0.27408164, 0.27809835]),
    ])
    return transform(image).unsqueeze(0)

# Пример изображения
image_path = "example.jpg"
image = transform_image(image_path)

# Предсказание
with torch.no_grad():
    detections = model(image)

print(detections)
2️⃣ CornerNet Это метод, который детектирует объекты путем предсказания их углов (верхний левый и нижний правый углы) и затем соединяет углы для формирования объектов. Основные этапы: 1️⃣ Генерация тепловых карт углов объектов: Модель предсказывает тепловые карты для верхних левых и нижних правых углов объектов. 2️⃣ Сопряжение углов: Определение пар углов, которые формируют bounding boxes. 3️⃣ Регрессия оффсетов: Модель предсказывает смещения углов относительно координат сетки. Преимущества: ➕ Высокая точность детекции. ➕ Отказ от использования анкор-боксов. Пример
# Пример демонстрации работы CornerNet с использованием гипотетической библиотеки
# Предполагаем, что у нас есть модуль `cornernet`, который поддерживает нужные функции
# (на текущий момент точной реализации в популярных библиотеках может не быть)

import torch
from torchvision import transforms
from PIL import Image

# Загружаем гипотетическую модель CornerNet
# model = cornernet.load_model('cornernet_saccade')

# Преобразование изображения
def transform_image(image_path):
    image = Image.open(image_path).convert("RGB")
    transform = transforms.Compose([
        transforms.Resize((512, 512)),
        transforms.ToTensor(),
    ])
    return transform(image).unsqueeze(0)

# Пример изображения
image_path = "example.jpg"
image = transform_image(image_path)

# Предсказание
# with torch.no_grad():
#     detections = model(image)

# print(detections)
Эти методы предлагают более простые и часто более точные альтернативы традиционным подходам с anchor box-ами. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых
إظهار الكل...
👍 1
🤔 Какой из следующих алгоритмов является алгоритмом кластеризации?Anonymous voting
  • DBSCAN
  • K-Nearest Neighbors
  • Random Forest
  • Logistic Regression
0 votes
🤔 3 1
📌 Какие есть детекторы и архитектуры в cv ? 💬 Спрашивают в 14% собеседований Существует множество детекторов и архитектур для задач обнаружения и распознавания объектов. Вот некоторые из наиболее популярных и широко используемых детекторов и архитектур: 1️⃣ HOG (Histogram of Oriented Gradients) ➕ Это метод, основанный на вычислении и нормализации гистограмм направленных градиентов в локальных областях изображения. Он используется для обнаружения объектов на основе их формы и контуров. ➕ Применение: Обнаружение пешеходов, транспортных средств и других объектов. 2️⃣ Детектор Хаара ➕ Метод, основанный на использовании каскадных классификаторов Хаара. Вычисляет простые характеристики, такие как разница в интенсивности между соседними областями изображения. ➕ Применение: Обнаружение лиц и других объектов. 3️⃣ DPM (Deformable Parts Model) ➕ Метод, который разбивает объект на части и использует деформируемую модель для определения взаимного расположения частей. ➕ Применение: Обнаружение сложных объектов, таких как животные и транспортные средства. Современные глубокие архитектуры 4️⃣ R-CNN (Region-Based Convolutional Neural Networks) Извлекает предложенные регионы (Region Proposals) с использованием метода Selective Search, а затем использует сверточную нейронную сеть (CNN) для классификации каждого региона. Архитектуры: ➕ R-CNN: Использует CNN для классификации предложенных регионов. ➕ Fast R-CNN: Улучшенная версия, которая ускоряет процесс обучения и предсказания за счет использования ROI Pooling. ➕ Faster R-CNN: Включает сеть предложений регионов (RPN), что позволяет получать предложения регионов непосредственно из CNN. ➕ Mask R-CNN: Расширение Faster R-CNN для задач сегментации объектов, добавляющее предсказание масок объектов.
from torchvision import models

# Загрузка предобученной модели Faster R-CNN
model = models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
model.eval()

# Пример использования модели для обнаружения объектов
import torch
from PIL import Image
from torchvision import transforms as T

# Преобразование изображения
def transform_image(image_path):
    image = Image.open(image_path).convert("RGB")
    transform = T.Compose([T.ToTensor()])
    return transform(image).unsqueeze(0)

# Пример изображения
image_path = "example.jpg"
image = transform_image(image_path)

# Предсказание
with torch.no_grad():
    predictions = model(image)

print(predictions)
5️⃣ YOLO (You Only Look Once) Разделяет изображение на сетку и предсказывает bounding boxes и вероятности классов для каждой ячейки сетки. Обучается end-to-end, что делает его очень быстрым. Архитектуры: ➕ YOLOv1: Первая версия YOLO. ➕ YOLOv2 (YOLO9000): Улучшенная версия с поддержкой большого числа классов. ➕ YOLOv3: Добавляет несколько масштабов детекции для улучшения точности. ➕ YOLOv4 и YOLOv5: Дальнейшие улучшения в скорости и точности.
import torch

# Загрузка предобученной модели YOLOv5
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')

# Пример изображения
image_path = "example.jpg"

# Предсказание
results = model(image_path)

# Отображение результатов
results.show()
Эти архитектуры варьируются по скорости и точности, и выбор подходящей модели зависит от конкретных требований задачи и доступных ресурсов. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых
إظهار الكل...

🔥 1
🤔 Что такое underfitting?Anonymous voting
  • Модель слишком сложная и плохо обобщает данные
  • Модель слишком простая и плохо обучается на данных
  • Модель имеет высокую точность на тренировочных данных, но низкую на тестовых
  • Модель имеет низкую точность на тренировочных данных, но высокую на тестовых
0 votes
📌 Как считается метрика IoU ? 💬 Спрашивают в 14% собеседований IoU (Intersection over Union, пересечение на объединение) — это метрика, широко используемая в задачах компьютерного зрения, особенно в задачах сегментации и обнаружения объектов. Она измеряет степень перекрытия между предсказанными и истинными областями (bounding boxes или масками объектов). Формула Определяется как отношение площади пересечения предсказанной и истинной областей к площади их объединения. \[ \text{IoU} = \frac{\text{Площадь пересечения}}{\text{Площадь объединения}} \] Вычисление IoU 1️⃣ Определение координат: Пусть \((x_1, y_1, x_2, y_2)\) — координаты углов истинного bounding box (ground truth), а \((x_3, y_3, x_4, y_4)\) — координаты углов предсказанного bounding box (predicted box). 2️⃣ Вычисление координат пересечения: Координаты пересечения определяются как: \[ x_{\text{left}} = \max(x_1, x_3) \] \[ y_{\text{top}} = \max(y_1, y_3) \] \[ x_{\text{right}} = \min(x_2, x_4) \] \[ y_{\text{bottom}} = \min(y_2, y_4) \] 3️⃣ Вычисление IoU: \[ \text{IoU} = \frac{\text{Площадь пересечения}}{\text{Площадь объединения}} \] Пример
def calculate_iou(box1, box2):
    # Координаты верхнего левого и нижнего правого углов
    x1_min, y1_min, x1_max, y1_max = box1
    x2_min, y2_min, x2_max, y2_max = box2

    # Координаты пересечения
    x_inter_min = max(x1_min, x2_min)
    y_inter_min = max(y1_min, y2_min)
    x_inter_max = min(x1_max, x2_max)
    y_inter_max = min(y1_max, y2_max)

    # Вычисление площади пересечения
    if x_inter_max > x_inter_min and y_inter_max > y_inter_min:
        inter_area = (x_inter_max - x_inter_min) * (y_inter_max - y_inter_min)
    else:
        inter_area = 0

    # Вычисление площадей обоих bounding boxes
    box1_area = (x1_max - x1_min) * (y1_max - y1_min)
    box2_area = (x2_max - x2_min) * (y2_max - y2_min)

    # Вычисление площади объединения
    union_area = box1_area + box2_area - inter_area

    # Вычисление IoU
    iou = inter_area / union_area
    return iou

# Пример
box1 = [2, 2, 6, 6]  # [x_min, y_min, x_max, y_max]
box2 = [4, 4, 8, 8]  # [x_min, y_min, x_max, y_max]

iou = calculate_iou(box1, box2)
print(f"IoU: {iou}")
Вычисление IoU для масок сегментации Используется аналогичный подход, но вместо bounding boxes рассматриваются двумерные бинарные маски предсказанного и истинного объектов. 1️⃣ Вычисление пересечения и объединения: \[ \text{Пересечение} = \sum_{i, j} (\text{Mask}_{\text{pred}}[i, j] \wedge \text{Mask}_{\text{gt}}[i, j]) \] \[ \text{Объединение} = \sum_{i, j} (\text{Mask}_{\text{pred}}[i, j] \vee \text{Mask}_{\text{gt}}[i, j]) \] 2️⃣ Вычисление IoU: \[ \text{IoU} = \frac{\text{Пересечение}}{\text{Объединение}} \]
import numpy as np

def calculate_iou_masks(mask1, mask2):
    # Пересечение
    intersection = np.logical_and(mask1, mask2)
    inter_area = np.sum(intersection)

    # Объединение
    union = np.logical_or(mask1, mask2)
    union_area = np.sum(union)

    # Вычисление IoU
    iou = inter_area / union_area
    return iou

# Пример масок
mask1 = np.array([[0, 1, 1], [0, 1, 0], [0, 1, 0]])
mask2 = np.array([[1, 0, 1], [1, 1, 0], [0, 1, 1]])

iou = calculate_iou_masks(mask1, mask2)
print(f"IoU for masks: {iou}")
IoU (Intersection over Union) — это метрика, измеряющая степень перекрытия между предсказанными и истинными областями. Она используется как для bounding boxes, так и для масок сегментации. Вычисляется как отношение площади пересечения к площади объединения, и чем выше значение IoU, тем лучше предсказание совпадает с истинными данными. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых
إظهار الكل...

👍 2
🤔 Какой из следующих методов используется для балансировки несбалансированных данных?Anonymous voting
  • Oversampling
  • Undersampling
  • SMOTE
  • Все вышеперечисленные
0 votes
اختر خطة مختلفة

تسمح خطتك الحالية بتحليلات لما لا يزيد عن 5 قنوات. للحصول على المزيد، يُرجى اختيار خطة مختلفة.