2017-07-14 40 views
0

我被給了一個TensorFlow檢查點和一個導出的模型,但爲了使用Google ML Cloud提供模型,我需要一個saved_model.pbtxt文件。看起來我需要加載檢查點並使用SavedModelBuilder,但SavedModelBuilder需要一個輸入和輸出節點名稱的字典。如何從TensorFlow檢查點或模型創建SavedModel?

我的問題是,如果檢查點或導出的模型(如下)那樣,我如何找到生成pbtxt文件所需的節點名稱,我需要通過Google的ML Cloud服務爲該模型提供服務?

checkpoint 
export.data-00000-of-00001 
export.index 
export.meta 
options.json 

回答

1

export.meta應該是MetaGraphDef原型。所以你應該能夠解析proto來得到graph。然後您可以搜索節點以找到感興趣的節點。

喜歡的東西:

import argparse 
from tensorflow.core.protobuf import meta_graph_pb2 
import logging 

if __name__ == "__main__": 
    parser = argparse.ArgumentParser(
     description='Argument parser.') 
    parser.add_argument('--path', 
         required=True, 
         help='The path to the metadata graph file.') 
    args = parser.parse_args()      
    with open(args.path, 'r') as hf: 
    graph = meta_graph_pb2.MetaGraphDef.FromString(hf.read()) 
    print "graph: \n{0}".format(graph) 

我想你也應該能夠在包含該文件,並TensorBoard將呈現圖並用它來識別輸入/輸出節點的名稱的目錄指向TensorBoard。

+0

謝謝你,這非常有幫助!還有一個問題,請原諒我的無知,但是如何解釋這個文件呢?整個圖表的輸入和輸出是在特定的位置還是有一些文檔提供格式的詳細信息? – blueether

+0

因此,通常您可以訪問源代碼,您只需查看代碼即可查看輸入/輸出的名稱。如果你想識別來自export.meta的輸入/輸出,你需要做一些工作。我認爲TensorBoard可以讓你看到圖形。在這一點上,您可以直觀地識別輸入/輸出並獲取名稱。 TF代碼庫中可能有其他工具。 –

相關問題