2016-11-30 105 views
0

我有我创建了一个DNNClassifier和使用如何使用tensorflow恢复模型而不使用会话?

classifier = learn.DNNClassifier(
    feature_columns=feature_columns, hidden_units=[10, 20, 10], n_classes=3, model_dir=model_directory) 

东西,然后保存在目录model_directory得救了,我得到的文件

checkpoint 
events.out.tfevents.1480518258.DESKTOP-E18T9HJ 
graph.pbtxt 
model.ckpt-100-00000-of-00001 
model.ckpt-1-00000-of-00001 
model.ckpt-100.meta 
model.ckpt-1.meta 

然后我尝试加载它,使用

new_classifier = learn.TensorFlowEstimator.restore(model_directory) 

(根据我所看到的there) 但是得到

File "importAndClassify.py", line 17, in <module> 
    new_classifier = learn.TensorFlowEstimator.restore(model_directory) 
File "/home/Alois/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/base.py", line 441, in restore 
raise ValueError("Restore folder doesn't contain model definition.") 
ValueError: Restore folder doesn't contain model definition. 

你知道我应该怎么做吗?我读了here“通过向构造函数提供相同的model_dir来完成恢复”。但这没有结果。

new_classifier = learn.DNNClassifier(model_directory) 

我很困惑所有API的变化和缺乏明确的文档。特别是,我不明白为什么在某些教程中,使用tensorflow变量和会话构建分类器,并且一切都非常复杂,而且其他一些时候,这听起来很容易,你只需要说你想要这个分类器基于这个和这个参数......这是否进一步参数化?这两个愿景之间有桥梁吗?

回答

1

相同的看法......接缝就像他们需要一些好的软件架构和优秀的项目经理......这样TF看起来像一个笑话

解决你的问题:该模型从目录中自动加载在“构造函数”:

分类= learn.DNNClassifier( feature_columns = feature_columns,hidden_​​units = [10,20,10],n_classes = 3,model_dir = model_directory)

如果model_directory具有文件它将加载它们。 ..这是如何加载模型大声笑...它真的没有更多

我的问题是加载相同的模型在张量在JAVA ...我需要一个“model_saved.pb”或“model_saved.pbtxt”文件,但它是不可能得到它使用learn.DNNClassifier(...)