Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이비드 라이언
- mark minervini
- 2%룰
- tensorflow
- GIT
- 연금저축계좌
- python
- 김프
- 통계적 유의성
- 아웃풋 트레이닝
- 파이어족 저축
- 데이빗 라이언
- 파이어족
- 자산배분
- eclipse
- AWS
- 추세추종 2%룰
- 이클립스
- 신의 시간술
- 파이어족 자산증식
- 파이어족 포트폴리오
- 에드워드 소프
- 니콜라스 다바스
- 퀀터스 하지 마세요
- 파이어족 자산
- 퀀트 트레이딩
- 마크 미너비니
- 제시 리버모어
- 마크미너비니
- H는 통계를 모른다.
Archives
- Today
- Total
머신러닝과 기술적 분석
[Tensorflow] Checkpoint file에 저장되어있는 Variable Tensor를 알아보는 방법 본문
Tensorflow
[Tensorflow] Checkpoint file에 저장되어있는 Variable Tensor를 알아보는 방법
BetterToday 2017. 8. 19. 16:13728x90
TensorFlow는 학습한 모델을 2개의 file로 나누어서 저장한다. meta file 에는 code 로 구현한 graph가 저장이 되고 (.meta file) ckeckpoint file 에는 training 과정에서 결정된 Variable Tensor의 value가 저장된다. (.ckpt file) 따라서 두 개의 file이 있으면 학습한 network model을 load 할수 가 있다.
그런데 TensorFlow Model Zoo 처럼 ckeckpoint file 만을 제공하는 경우도 있고, ckeckpoint 에 저장되어 있는 variable tensor의 scope/name을 알고 싶을 때가 있다.
이럴 때는 tf.contrib.framework.list_variables()
를 사용하면 쉽게 variable tensor의 scope/name을 알 수가 있다.
아래의 code 처럼 ckeckpoint에 저장되어있는 모든 variable tensor의 name과 shape 을 볼 수 가 있다.
variables = tf.contrib.framework.list_variables('ckpts/vgg_16.ckpt') # Tensorflow Model Zoo 에서 제공하는 ckeckpoint file
for i, v in enumerate(variables):
print("{}. name : {} \n shape : {}".format(i, v[0], v[1]))
다음은 code 를 실행한 결과이다.
global_step
을 제외한 모든 variable이vgg_16
이라는 최상위 scope 밑에 layer 별로 나뉘어져 있다.- 최하위에는
weight
/biases
라는 suffix가 붙어있는 모습이다.
0. name : global_step
shape : []
1. name : vgg_16/conv1/conv1_1/biases
shape : [64]
2. name : vgg_16/conv1/conv1_1/weights
shape : [3, 3, 3, 64]
3. name : vgg_16/conv1/conv1_2/biases
shape : [64]
4. name : vgg_16/conv1/conv1_2/weights
shape : [3, 3, 64, 64]
5. name : vgg_16/conv2/conv2_1/biases
shape : [128]
6. name : vgg_16/conv2/conv2_1/weights
shape : [3, 3, 64, 128]
7. name : vgg_16/conv2/conv2_2/biases
shape : [128]
8. name : vgg_16/conv2/conv2_2/weights
shape : [3, 3, 128, 128]
9. name : vgg_16/conv3/conv3_1/biases
shape : [256]
10. name : vgg_16/conv3/conv3_1/weights
shape : [3, 3, 128, 256]
11. name : vgg_16/conv3/conv3_2/biases
shape : [256]
12. name : vgg_16/conv3/conv3_2/weights
shape : [3, 3, 256, 256]
13. name : vgg_16/conv3/conv3_3/biases
shape : [256]
14. name : vgg_16/conv3/conv3_3/weights
shape : [3, 3, 256, 256]
15. name : vgg_16/conv4/conv4_1/biases
shape : [512]
16. name : vgg_16/conv4/conv4_1/weights
shape : [3, 3, 256, 512]
17. name : vgg_16/conv4/conv4_2/biases
shape : [512]
18. name : vgg_16/conv4/conv4_2/weights
shape : [3, 3, 512, 512]
19. name : vgg_16/conv4/conv4_3/biases
shape : [512]
20. name : vgg_16/conv4/conv4_3/weights
shape : [3, 3, 512, 512]
21. name : vgg_16/conv5/conv5_1/biases
shape : [512]
22. name : vgg_16/conv5/conv5_1/weights
shape : [3, 3, 512, 512]
23. name : vgg_16/conv5/conv5_2/biases
shape : [512]
24. name : vgg_16/conv5/conv5_2/weights
shape : [3, 3, 512, 512]
25. name : vgg_16/conv5/conv5_3/biases
shape : [512]
26. name : vgg_16/conv5/conv5_3/weights
shape : [3, 3, 512, 512]
27. name : vgg_16/fc6/biases
shape : [4096]
28. name : vgg_16/fc6/weights
shape : [7, 7, 512, 4096]
29. name : vgg_16/fc7/biases
shape : [4096]
30. name : vgg_16/fc7/weights
shape : [1, 1, 4096, 4096]
31. name : vgg_16/fc8/biases
shape : [1000]
32. name : vgg_16/fc8/weights
shape : [1, 1, 4096, 1000]
33. name : vgg_16/mean_rgb
shape : [3]
- 실행 환경
- python 3.5 + tensorflow 1.0.1
728x90
반응형
'Tensorflow' 카테고리의 다른 글
Tensorflow 에서 VGG16을 사용하는 방법 (0) | 2017.08.17 |
---|---|
Tensorflow 에서 random seed 사용방법 (0) | 2017.08.16 |
Tensorflow에서 scope/name 조합으로 variable 가져오기 (0) | 2017.08.16 |
Tensorflow 구현 Pattern (0) | 2017.08.16 |
Tensorflow 에서 model 을 저장, 로드하는 방법 (0) | 2017.08.16 |
Comments