말 그대로다.

pytorch에서 tensor로 저장되는 weight 값을 저장하고 싶었다. 그것도 줄임표시가 없이 전체 저장!!

print를 하면 ... 표시로 나오고

파일로 저장해도 ... 로 나오고..

아래 글처럼, numpy 배열을 뿌리는 옵션을 찾았지만

tensor에는 적용되지 않았다.

구글링으로 set_printoptions 를 찾았고, 아래 numpy 옵션 처럼, 라인 등 지정이 가능하다.

파일로 저장하는 부분도 함께 찾았는데, 자세한 부분은 아래 링크 참조하여 상황에 맞게 수정하여 사용.

import pandas as pd

# profile 부분에서 설정 가능
# full : 전체 출력 설정
torch.set_printoptions(profile="full")

state_dict = model.state_dict()

for key in state_dict:
	# 여긴 그냥 key 값으로 내용 출력해주는 부분
	# 이었는데 아래 처럼 파일로 씀.
	...

df = pd.DataFrame.from_dict([state_dict])
df.to_csv('file.txt', header=False, index=True, mode='a')

tensor 출력 부분 출처 : https://pytorch.org/docs/stable/generated/torch.set_printoptions.html#torch.set_printoptions

파일 저장 부분 출처 : https://stackoverflow.com/questions/36965507/writing-a-dictionary-to-a-text-file

로그도 로그지만

그저, 파일에 쓰고 싶었다.

그래서 찾아봤는데 없었다. 아니 못찾았다.

그래서 또 찾아봤다.

np.set_printoptions() 함수 활용하면 된단다.

이 옵션만 위에 추가하면 된다. 옵션 잘 챙겨서..

threshold 옵션 값으로 np.inf (무한)사용할수 도 있으나 처리 과정에서 오류발생할 수도 있다고 하여

api에서 말하는 sys.maxsize 사용함. 숫자로 출력 개수 지정도 가능함. 디폴트 1000.

참조 : https://numpy.org/doc/stable/reference/generated/numpy.set_printoptions.html

import sys
import numpy as np

# numpy 값. 줄임없이 모두 표시하는 옵션
np.set_printoptions(threshold=sys.maxsize)

+ Recent posts