В настоящее время я делаю классификатор по старинке, использую SIFT дескриптор и делаю kmeans, чтобы получить пакет визуальных слов. Мой набор данных взят из набора данных Stanford Dogs, который содержит приблизительно 20 000 изображений. Я использую sift для обнаружения и вычисления из opencv:
descriptor_list = []
def descriptor(df):
for img in df.img:
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
keypoint, descriptor = sift.detectAndCompute(img, None)
for k in range(descriptor.shape[0]):
descriptor_list.append(descriptor[k].astype('int32'))
return descriptor_list
Затем я превратился в фрейм данных панды:
Во-первых, как вы можете видеть, использование памяти составляет 2,5 ГБ, нормально ли это даже с 2 миллионами + записей?
Затем, когда я выполняю kmeans с кластером 500, я получил BSOD с кодом остановки: WIN32K_POWER_WATCHDOG_TIMEOUT.
Характеристики компьютера:
- Windows 10 (версия 18362.778)
- WSL (Windows Подсистема для Linux)
- CPU i7 -8565U
- RAM 16 ГБ
Версия программного обеспечения:
- Python: 3,5
- Opencv: 4.3.0
- jupyter core: 4.6.3
- jupyter-notebook: 6.0.3
- qtconsole: 4.7.2
- i python: 7.9.0
- ipykernel: 5.2.0
- jupyter client: 6.1.2
- nbconvert: 5.6.1
- ipywidgets: 7.5.1
- nbformat: 5.0.5
- traitlets: 4.3.3
Спасибо за ваши ответы!