tensorflow.saved_model.save
SavedModel 형식 의 함수를 사용하여 모델을 저장하면 나중에이 모델에 사용 된 Tensorflow Ops를 검색 할 수 있습니다. 모델을 복원 할 수 있으므로 이러한 작업은 그래프에 저장되며 추측은 saved_model.pb
파일에 있습니다. 이 protobuf (전체 모델이 아님)를로드하면 protobuf의 라이브러리 부분에이 목록이 나열되지만 지금은 실험적인 기능으로 문서화 및 태그 지정되지 않았습니다. Tensorflow 1.x에서 생성 된 모델에는이 부분이 없습니다.
그렇다면 저장된 모델 형식의 모델에서 사용 된 작업 ( MatchingFiles
또는 유사 WriteFile
) 목록을 검색하는 빠르고 안정적인 방법은 무엇 입니까?
지금처럼 전체를 얼릴 수 있습니다 tensorflowjs-converter
. 또한 지원되는 작업을 확인합니다. LSTM이 모델에있는 경우 현재 작동하지 않습니다 ( 여기 참조) . 작전이 확실히 있기 때문에 더 좋은 방법이 있습니까?
예제 모델 :
class FileReader(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(name='filename', shape=[None], dtype=tf.string)])
def read_disk(self, file_name):
input_scalar = tf.reshape(file_name, [])
output = tf.io.read_file(input_scalar)
return tf.stack([output], name='content')
file_reader = FileReader()
tf.saved_model.save(file_reader, 'file_reader')
이 경우 최소한 다음을 포함하여 모든 Ops를 출력 할 것으로 예상됩니다.
ReadFile
여기에 설명 된대로- ...
저장된 SavedModel에서 op를 검색하고 싶습니다. 실제로, 당신이 설명하는 마지막 옵션.
—
sampers
saved_model
마지막 예에서 변수 는 무엇입니까 ? tf.saved_model.load('/path/to/model')
saved_model.pb 파일의 protobuf 결과 또는로드
saved_model.pb
, 그것이다tf.GraphDef
, 또는SavedModel
protobuf 메시지를? 가tf.GraphDef
호출 된 경우를gd
사용하여 사용 된 작업 목록을 얻을 수 있습니다sorted(set(n.op for n in gd.node))
. 로드 된 모델이 있으면 할 수 있습니다sorted(set(op.type for op in tf.get_default_graph().get_operations()))
. 이 경우 에서SavedModel
가져옵니다tf.GraphDef
(예 :)saved_model.meta_graphs[0].graph_def
.