【问题标题】:tensorflow can not work with zeppelin张量流不能与齐柏林飞艇一起工作
【发布时间】:2017-08-03 02:28:36
【问题描述】:

在安装了 zeppelin、Anaconda 和 tensorflow 的服务器上,它运行良好。但是当我想在 zeppelin 上刮代码时,如下所示:

%python
import pandas as pd
import tensorflow as tf

运行这段代码,我遇到了这样的错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/__init__.py", line 71, in <module>
    from tensorflow.python.framework.framework_lib import *
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/framework_lib.py", line 73, in <module>
    from tensorflow.python.framework.ops import Graph
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 41, in <module>
    from tensorflow.python.framework import registry
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/registry.py", line 28, in <module>
    from tensorflow.python.platform import tf_logging as logging
  File "/home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/platform/tf_logging.py", line 53, in <module>
    if _interactive:
NameError: name '_interactive' is not defined

如何解决这个问题。我没有用谷歌搜索这个解决方案。

【问题讨论】:

    标签: tensorflow apache-zeppelin


    【解决方案1】:

    最后,我修复了文件

    /home/hadoop/anaconda3/lib/python3.5/site-packages/tensorflow/python/platform/tf_logging.py

    像这样:

    # If we are in an interactive environment (like jupyter), set loglevel to info
    # and pipe the output to stdout
    if True:
    #if _interactive: 
      _logger.setLevel(INFO)
      _logging_target = _sys.stdout
    else:
      _logging_target = _sys.stderr
    

    并重新启动 zeppelin 的 python 解释器。它工作正常!

    【讨论】:

      【解决方案2】:

      tensorflow 项目中有一个关于这个的问题:https://github.com/tensorflow/tensorflow/pull/8420

      他们通过将 _interactive 设置为默认值 False 来修复它

      # If we are in an interactive environment (like jupyter), set loglevel to info
      # and pipe the output to stdout
      _interactive = False
      if _interactive: 
        _logger.setLevel(INFO)
        _logging_target = _sys.stdout
      else:
        _logging_target = _sys.stderr
      

      最好的方法是在发布版本中包含错误修复后立即更新 tensorflow,或者更新 /site-packages/tensorflow/python/platform/tf_logging.py,就像他们在上述提交中所做的那样。

      问候, 洛伊克

      【讨论】:

        猜你喜欢
        • 2017-12-24
        • 1970-01-01
        • 2021-07-14
        • 2016-04-16
        • 2019-01-08
        • 2019-02-08
        • 2016-02-16
        • 2018-08-01
        • 2019-11-01
        相关资源
        最近更新 更多