isPowerfulBlog

[Numpy] npz: 파일 구조 확인하기 본문

AI

[Numpy] npz: 파일 구조 확인하기

왕밤빵도라에몽 2023. 1. 16. 03:03

numpy 배열을 파일 형태로 저장할 수 있다. 바로 npz!!

특히나 stylegan2의 project.py를 돌려보면 이러한 npz형태로 latent space에 mapping된 latent를 뽑아주기 때문에 좀 자주 마주쳤다.
npz 파일 내부에는 np 배열이 여러개 존재할 수 있기 때문에
npz 파일에서 원하는 np 배열만 뽑아내서 사용해야할 때가 많다!
npz를 다루는 방식을 아주 간단히... 정리해놔야징

npz 내부 탐색

\

from numpy import load
import numpy as np

def load_npz(path):
  data = load(path)
  lst = data.files
  for item in lst:
    print(f'items!!!!: {item}')
  • npz를 탐색하는 간단한 함수
  • print는 편의를 위해 임의로 줬다.
load_npz('latent.npz')

> items!!!!: dlatents
  • 쉘에서 함수를 실행시켜 주면 내부에 존재하는 요소 확인 가능
  • 나의 경우에는 dlatents 하나만 존재한다. 이게 아마 np 배열이겠지!
print(data['dlatents'])
  • 위에서 알아낸 키값을 넣어 np 배열만 뽑아낸다.

npz 불러오기 / 저장하기

\

projected_w = np.load('latent.npz')
  • npz 파일 불러오기
np.savez('latent.npz', w=projected_w['dlatents'])
  • 다시 npz 형태로 저장하기
  • w는 내가 임의로 지어준 이름이다, 위에서 'dlatents'같은 역할 (필드? 같은...)