【问题标题】:TensorFlow with skflow: AttributeError: 'module' object has no attribute 'saver_pb2'带有 skflow 的 TensorFlow:AttributeError:“模块”对象没有属性“saver_pb2”
【发布时间】:2016-03-04 06:45:47
【问题描述】:

我尝试从 skflow 运行 iris_save_restore.py 示例,根本不更改代码。

但是,我遇到了一个错误,我不确定如何继续。 似乎是从保存的文件中恢复模型时发生的。

new_classifier = skflow.TensorFlowEstimator.restore('/tmp/skflow_examples/iris_custom_model')
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
score = metrics.accuracy_score(y_test, new_classifier.predict(X_test))
print('Accuracy: {0:f}'.format(score))  File "/Users/hamayu/.pyenv/versions/anaconda2-2.5.0/lib/python2.7/site-packages/skflow/estimators/base.py", line 463, in restore
    estimator._restore(path)
  File "/Users/hamayu/.pyenv/versions/anaconda2-2.5.0/lib/python2.7/site-packages/skflow/estimators/base.py", line 401, in _restore
    saver_def = tf.python.training.saver_pb2.SaverDef()
AttributeError: 'module' object has no attribute 'saver_pb2'

我使用以下版本:

  • anaconda2-2.5.0
  • tensorflow 0.7 CPU-only for Mac OS X
  • skflow 0.1.0

我该如何解决?

【问题讨论】:

    标签: python tensorflow skflow


    【解决方案1】:

    这看起来像是 skflow 中的一个错误:当前版本的 skflow 与最新版本的 TensorFlow(0.7.0 及更高版本)不兼容。我提交了pull request 来修复它。 (编辑: 拉取请求现已合并,因此升级到最新版本的 skflow 也可以解决问题。)

    与此同时,您可以通过编辑 "skflow/estimators/base.py" 的第 401 行(堆栈跟踪中的完整路径)并替换:

    saver_def = tf.python.training.saver_pb2.SaverDef()
    

    ...与:

    saver_def = tf.train.SaverDef()
    

    【讨论】:

      【解决方案2】:

      作者今天刚刚修复了这个问题:https://github.com/tensorflow/skflow/issues/144。您必须从 github(最新版本)删除并重新安装 skflow。

      【讨论】:

        猜你喜欢
        • 2019-11-26
        • 1970-01-01
        • 2019-03-12
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        • 2016-12-04
        • 2017-03-29
        相关资源
        最近更新 更多