random_image

Tensorboard Projector를 이용해 임베딩을 visualize해보자

tony | April 19, 2024, 6:37 p.m. | tool | visualization pytorch

Embedding visualization 하는 간단한 방법

임베딩과 메타데이터가 있으면, 다음과 같이 주피터 노트북에서 visualize할 수 있다.

tensorboard projector 는 goolge에서 만든 visualization 툴이다. arxiv 논문을 참고: https://arxiv.org/pdf/1611.05469v1.pdf
다음과 같이 https://pytorch.org/docs/stable/_modules/torch/utils/tensorboard/writer.html#SummaryWriter.add_embedding 함수를 활용하면 된다.

%load_ext tensorboard

import joblib
import numpy as np
import pandas as pd
from torch.utils.tensorboard import SummaryWriter

TENSORBOARD_DIR = 'tensoboard_log/'
embedding = np.load("embedding.npy")
embedding_id_list = joblib.load("embedding_id_list.pkl")
metadata = pd.read_parquet("item_meta.parquet")
metadata_header = ['id', 'column1', 'column2']
metadata = metadata[metadata_header].loc[embedding_id_list].reset_index()

writer = SummaryWriter(TENSORBOARD_DIR)
writer.add_embedding(embedding, metadata, metadata_header=metadata_header)
writer.close()


위와 같이 실행하면 tensorboard를 실행하기 위한 파일이 TENSORBOARD_DIR 안에 생긴다.

tensoboard_log/
├── 00000
│   └── default
│       ├── metadata.tsv
│       └── tensors.tsv
├── events.out.tfevents.*
└── projector_config.pbtxt

 

이해 해당 디렉토리로 tensorboard를 다음과 같이 실행하면 된다. 주피터에서 실행시 랜더링 된다. 

%tensorboard --logdir ./save_embedding/ --bind_all

 

Last updated on April 19, 2024, 6:45 p.m.

LEAVE A COMMENT