앞으로 네트워크를 학습시키기 위해서 pre-trained 모델을 사용할 일이 자주 있을 것이다.

 

보통 pre-trained 모델에서 파라미터를 'h5' 혹은 'hdf5'로 저장하게 되는데,

이를 적절히 활용하고, 이해하는데 도움이 될 수 있는 예제를 준비해보았다.

 

[h5py 설치] pip install h5py

[업그레이드] pip install h5py --upgrade

=================================시작========================================

import h5py
import numpy as np

file = h5py.File('test_hdf5.hdf5','w') # 저장하고 싶은 파일명을 입력한다. 'w'는 파일을 쓸 때 사용하는 옵션이다 (기존에 존재한다면 덮어쓰게 된다).

#file.create_group("a") # 폴더를 생성하는 방법 중 하나이다. 하지만 아래의 방법과 중복하여 사용이 불가능하기에 좀 더 직관적이고 사용하기 편리한 아래 방법만을 사용한다. 이렇게도 사용할 수 있다는 것만 알고 넘어가자.

#file.create_group("b/c")

#file["a"].create_group("d")
#file["b"].create_group("f")

g = file.create_group("a") # create_group을 사용하여 파일에 'a'라는 폴더를 생성한다.
g2 = file.create_group("b")
g.create_group("d") # 'a' 폴더 안에 'd' 라는 폴더를 생성한다.
g.create_group("sub") # 'a' 폴더 안에 'sub' 라는 폴더를 생성한다.
g2.create_group("c")
g2.create_group("f")

print(file.keys()) # keys를 사용하여 'test_hdf5.hdf' 파일의 디렉토리를 확인한다.
print(g.keys())
print(g2.keys())

g2.attrs['message'] = "Hello Python!!" # attrs를 사용하여 속성을 추가할 수 있다. 속성의 자료형은 튜플(tuple)타입이다.
g2.attrs['dt'] = "2021.12.20"

print(g2.attrs['message'])

print(g2.attrs.keys())


print('속성의 키와 값을 출력해보기') # print를 통해 위의 속성이 잘 적용되었는지 확인할 수 있다.
for key in g2.attrs.keys():
    print(f'{key}:{g2.attrs[key]}') # 변수를 출력할 때에는 따옴표 앞에 'f'를 잊지말자.

print('속성의 값만 출력해보기')
for value in g2.attrs.values():
    print(f'{value}')

print('속성의 자료형 체크 출력해보기')
for value in g2.attrs.items():
    print(f'자료형:{type(value)}, 출력:{value}')

for key, value in g2.attrs.items():
    print(f'{key}:{value}')

dt = g.create_dataset("test", data=np.arange(30)) # 'a' 폴더 안에 test라는 새로운 폴더와 데이터 셋을 생성한다.

print(f'dt: {dt.name}')
print(f'dt: {dt.shape}')
print(f'dt: {dt.dtype}')
print(f'dt: {dt[1:10]}')

dt[1] = 100
dt[2:10] = -1.5

print(dt[:]) # 'test' 데이터셋이 잘 입력되었는지 확인해보자.

g['sub2'] = np.arange(15) # 'a' 폴더 안에 'sub2' 라는 새로운 폴더와 데이터 셋을 생성한다.
c=file['/a/sub2'] # 데이터셋에 접근할 수 있다.
print(c)

c=g2['/a/test']
print(c)

file.close()

==================================끝=========================================

 

단순한 코드로써 기초적인 'hdf5' 파일을 다루고 이해하기에는 충분할 것으로 예상한다.

혹시 나중에 추가로 필요한 내용이 있다면 새롭게 글을 작성해 보겠다.

 

아래에는 출처가 되는 사이트와 'hdf viewer' 다운로드 링크를 첨부하겠다.

 

Source: https://ddolcat.tistory.com/715

 

[Python] 파이썬 h5py 설치 및 사용방법 알아보기 : HDF5 예제

Hierarchical Data Format 는 매우 크고 복잡한 대용량 데이터를 저장하기 위한 파일 형식(HDF4, HDF5)입니다. 파일 확장자는 hdf5 또는 h5입니다. HDF5의 가장 큰 특징은 빅데이터 처리시 유용하며, 빠른 입출

ddolcat.tistory.com

HDF viewer: https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-3.1/bin/

 

Index of /ftp/HDF5/releases/HDF-JAVA/hdfview-3.1/bin

 

support.hdfgroup.org

 

'개인공부 > Python' 카테고리의 다른 글

im2col 함수  (0) 2022.01.18
Pytorch - 텐서 조작하기  (0) 2022.01.18
RuntimeError (CUDA)  (0) 2022.01.13
Python, Pytorch, Torchvision 다운그레이드  (0) 2022.01.11
(1) 변수와 리스트  (0) 2021.12.14

변수

흥미롭게도 파이썬에서는 변수타입을 따로 지정해줄 필요가 없다.

 

변수에 값이 아닌 문자를 넣을 수도 있다.

문자열을 더하는 건 정말 쇼킹하다

리스트

배열과 동일한 의미이다. 하지만 리스트는 간편하게 배열을 다룰 수 있는 기능을 지원한다.

 

배열의 길이를 len() 함수로 다루게 되고, 배열 접근은 C++와 동일하다.

remove() 메소드를 통해서 배열에서 원하지 않는 값을 자유롭게 제거할 수 있다.

그럼 반대로 배열에 추가하는 메소드는 append()와 insert()이다.

append는 원소 마지막에 추가하게 된다.
insert는원하는 위치에 값을 추가할 수 있게 해준다. 리스트.insert(입력할 index, 값), 

리스트를 더하는 방법은 +기호 혹은 extend() 메소드를 사용할 수 있다.

'개인공부 > Python' 카테고리의 다른 글

im2col 함수  (0) 2022.01.18
Pytorch - 텐서 조작하기  (0) 2022.01.18
RuntimeError (CUDA)  (0) 2022.01.13
Python, Pytorch, Torchvision 다운그레이드  (0) 2022.01.11
파라미터 저장을 위한 예제 (hdf5)  (0) 2021.12.20

다변수 함수 (Multivariable Functions)

- 독립변수가 2개이상인 식을 다변수 함수라고 한다.

처음으로 다변수 함수를 접하는 사람이 식을 3차원 공간에 직접 그리는 것은 쉽지 않은 일이다.

그러므로 첫번째 시간에는 간단한 다변수 함수를 3차원 공간에 직접 그려보는 것으로 시작한다.

Level curve (or Contour plot)

ex1) z=x^2+y^2

d
Figure 1. ex1에 대한 그림 (좌) 2차원 (우) 3차원

ex2) z=y^2-x^2

Figure 2. ex2에 대한 그림 (말 안장이라고 표현하시더라..) (좌) 2차원 (우) 3차원

ex3) z=-x

Figure 3. ex3에 대한 그림 (좌) 2차원 (우) 3차원

 

내용은 그다지 어렵지는 않은 것 같다.

 

하지만 가장 기초적인 내용이고 가끔 헷갈릴때마다 찾아와서 확인하는 정도로 사용할 생각이다.

 

한가지 그림을 그릴때 팁으로는 독립변수인 x와 y의 를 0으로보고,

 

z=x^2인 경우와 z=y^2인 경우를 각각 생각해보면 그림을 쉽게 그릴수 있다고 한다.

1. 10월치고는 너무 추워요

2. 날씨가 갑자기 추워졌어요

3. 세부 사항을 문자로 보낼게요

4. 너무 배불러서 걸을 수가 없어요

5. 차를 골목에 세울게요

6. 어디서부터 시작해야 할지 모르겠어요

7. 내가 날 수 있다면 어디든 갈 텐데

8. 주말 동안 무엇을 했나요?
9. 그 이름 익숙 한데요

10. 내 말 들려요?

11. 내일 아침에 모닝콜 좀 부탁할게요

12. 여기 있었는데 지금은 없어요

13. 1년 넘게 그를 만나지 못했어요

14.  그녀는 집에 막 가려던 참이었어요

15. 제 가방들을 좀 맡아줄 수 있나요?

16. 말조심해

17. 그녀는 알고 보니 매우 똑똑해

18. 내 상황에도 불구하고 나는 포기하지 않았어

19. 제가 점심을 대접하고 싶어요

20. 온수가 나오지 않아요

21. 모니터에 아무것도 안 나와요

22. 내가 여기 있으니까 너는 안전해

23. 이것을 기내로 가져갈 수 있어요?

24. 차멀미 나려고 해요

25. 나는 그가 세련되게 보이길 원해요

 

'개인공부 > English' 카테고리의 다른 글

[Leon English] 오늘의 문장 (don' forget this!)  (0) 2022.02.09
[Leon English] 오늘의 문장 (220207)  (0) 2022.02.07
하루영어 - 14  (0) 2021.03.22
하루영어 - 11  (0) 2021.03.17
영어공부 - 6~10  (0) 2021.03.16

+ Recent posts