반응형
안녕하세요ㅎㅎ 이번 포스팅에서는 이미지 분류 task를 목적으로 학습된 신경망의 출력값을 t-SNE으로 시각화 해보겠습니다.
제가 학습한 모델은 STL-10 dataset에서 성능이 36% 밖에 안나오기 때문에, t-SNE 시각화 그림이 명확하지 않습니다.
from sklearn.manifold import TSNE
import seaborn as sns
tsne = TSNE()
# t-SNE 시각화 함수 정의
def plot_vecs_n_labels(v, labels, fname):
fig = plt.figure(figsize = (10,10))
plt.axis('off')
sns.set_style('darkgrid')
sns.scatterplot(v[:,0], v[:,1], hue=labels, legend='full', palette=sns.color_palette("bright", 10))
plt.legend(['airplane', 'bird', 'car', 'cat', 'deer', 'dog', 'horse', 'monkey', 'ship', 'truck'])
plt.savefig(fname)
# change batch_size
val_dl = DataLoader(val_ds, 1024, True)
for x, y in val_dl:
x = x.to(device)
with torch.no_grad():
pred = q_encoder(x)
pred = linear_classifier(pred)
# 모델의 출력값을 tsne.fit_transform에 입력하기
pred_tsne = tsne.fit_transform(pred.cpu().data)
# t-SNE 시각화 함수 실행
plot_vecs_n_labels(pred_tsne, y, 'tsen.png')
break
모델이 36%의 낮은 정확도를 갖고 있기 때문에, 시각화 그림이 예쁘게 나오진 않네요
반응형
'Python > PyTorch 공부' 카테고리의 다른 글
[에러 해결] CUDA error: CUBLAS_STATUS_INTERNAL_ERROR when calling `cublasCreate(handle) (3) | 2021.09.14 |
---|---|
[PyTorch] nn.Sequential 을 상속받아 Class 정의하기 (0) | 2021.08.04 |
[PyTorch] ShuffleSplit와 subset 함수를 사용하여 dataset 분할하기 (0) | 2021.07.10 |
[PyTorch] VOC Segmentation 데이터셋 사용하기 (0) | 2021.06.25 |
[PyTorch] Dice coefficient 을 PyTorch로 구현하기 (3) | 2021.06.25 |