tensor flow 가중치 파일 에 대한 해석

1.tensorflow 가중치 파일 을 해독 하고 tf.train.NewCheckpoint Reader 함 수 를 통 해.
2.reader.get_variable_to_shape_map()는 가중치 파일 의 tensor 이름 을 얻 을 수 있 습 니 다.
3.reader.get_tensor(key)는 tensor 에 대응 하 는 가중치 를 얻 을 수 있 습 니 다.

import tensorflow as tf
cpktFileName = r'.\models\resnet_v2_152.ckpt'
reader = tf.train.NewCheckpointReader(cpktFileName)
for key in sorted(reader.get_variable_to_shape_map()):
   
    if key.endswith('weights') or key.endswith('biases'):
        keySplits = key.split(r'/')
        print(key)
        print(reader.get_tensor(key))
        
resnet_v2_152 가중치 tensor name 해독
첫째,모든 tensor name 은 resnetv2_152 시작
두 번 째,tensor name 두 번 째 단 계 는 block 이 고 모두 네 개의 block 이 있 습 니 다.네트워크 구조 와 관계 가 있다.
셋째,세 번 째 필드 는 유닛 이 고 블록 마다 유닛 수량 이 다 릅 니 다.네트워크 구조 와 관계 가 있다.
넷 째,팀 뒤의 평탄 층 을 제외 하고 네 번 째 필드 는 모두 bottleneck 입 니 다.v2
다섯 번 째,다섯 번 째 필드 는'conv 1','conv 2','conv 3','shortcut'입 니 다.
여섯 번 째,여섯 번 째 필드 는'weights'or'biases'입 니 다.
在这里插入图片描述
추가:tensorflow 모델 호출,가중치 보기
vc 버 전의 tensorpack 으로 설명 합 니 다.
모델 호출
실행 할 때마다 checkpoint,graph,model 생 성
1.그 중에서 만약 에 폴 더 에 checkpoint 가 있 고 마지막 모델 을 자동 으로 떨 어 뜨 린 다 고 쓰 여 있 으 면 지난번 을 바탕 으로 계속 훈련 할 수 있 습 니 다.그렇지 않 으 면 다시 생 성 되 고 이전 모델 을 호출 할 수 없습니다.이미 존재 하 더 라 도.
2.실행 할 때마다 graph 를 다시 생 성 합 니 다.지난번 에 이미 존재 하 더 라 도 마지막 모델 을 호출 하 는 것 은 폴 더 에 graph 가 있 는 지 여부 와 무관 합 니 다.
가중치 변수 보기

import numpy as np
import tensorflow as tf
import sys
model = sys.argv[1]
tensor = sys.argv[2]
reader = tf.train.NewCheckpointReader(model)
all_variables = reader.get_variable_to_shape_map()
#reader = pywrap_tensorflow.NewCheckpointReader(ckpt_path)
#param_dict = reader.get_variable_to_shape_map()
for key, val in all_variables.items():
    try:
        print key, val
        #key      ,val   
    except:
        pass
w0 = reader.get_tensor(tensor)
np.save('con1d_w.npy',w0)
print(type(w0))
print(w0.shape)
print(w0[0])
파일 내용
chekpoint-저 장 된 최신 checkpoint 파일 과 다른 checkpoint 파일 목록 을 기록 합 니 다.inference 에 서 는 이 파일 을 수정 하여 어떤 model 을 사용 할 지 지정 할 수 있 습 니 다.

MyModel.meta 파일 은 그림 구조 로 저 장 됩 니 다.meta 파일 은 pb(protocol buffer)형식 파일 로 변수,op,집합 등 을 포함 합 니 다.
ckpt 파일 은 바 이 너 리 파일 로 모든 weights,biases,gradients 등 변 수 를 저장 합 니 다.tensorflow 0.11 이전에.ckpt 파일 에 저 장 됩 니 다.0.11 후 두 개의 파일 을 통 해 저장 합 니 다.예 를 들 어:

MyModel.data-00000-of-00001
MyModel.index
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기