열정/프로그래밍

[Error] Jupyter notebook에서 matplotlib의 imshow 사용 시 커널 다운 현상

lime9 2024. 2. 21. 19:46

연구 도중에 발생한 에러...

해결하기 위해 여러 방법을 사용해보다가 드디어 해결했다.

 

문제가 발생한 코드

n_samples = 10

for i, (im_name, gt_classes, gt_rels, boxes) in enumerate(list(zip(dataset.filenames, dataset.gt_classes, 
                                                                   dataset.relationships, dataset.gt_boxes))):
    im_path = os.path.join(dataset.images_dir, im_name)
    triplets = []
    for r in gt_rels:
        triplets.append(dataset.triplet2str('{}_{}_{}'.format(gt_classes[r[0]], r[2],  gt_classes[r[1]])))
    print('ZS triplets:', triplets)
    plt.figure(figsize=(7,7))
    im = cv2.imread(im_path)[:,:,::-1]
    obj_class_names = [dataset.ind_to_classes[cls] for cls in gt_classes]
    plt.imshow(draw_boxes(im, obj_class_names, boxes, fontscale=1, rels=gt_rels))
    plt.title(im_path)
    plt.grid(False)
    plt.axis(False)
    plt.show()
    
    if i >= n_samples:
        break

 

이미지만 출력이 안되고 커널이 다운되는 현상이 발생했다.

 

 

해결 방법

imshow를 사용하는 코드 내에서 다음을 선언해주면 된다.

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'