【问题标题】:NoneType has no attribute 'select' KerasDML SystemMLNoneType 没有属性“选择”KerasDML SystemML
【发布时间】:2018-02-01 04:32:13
【问题描述】:

我在this page 中运行示例 Keras2DML 代码时遇到了一些问题。在运行代码时,我遇到了这个错误:

Traceback (most recent call last):
  File "/home/fregy/kerasplayground/sysml/examplenn.py", line 12, in <module>
    sysml_model = Keras2DML(spark, keras_model,input_shape=(3,224,224))
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/estimators.py", line 909, in __init__
    convertKerasToCaffeNetwork(keras_model, self.name + ".proto")
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/keras2caffe.py", line 201, in convertKerasToCaffeNetwork
    jsonLayers = list(chain.from_iterable(imap(lambda layer: _parseKerasLayer(layer), kerasModel.layers)))
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/keras2caffe.py", line 201, in <lambda>
    jsonLayers = list(chain.from_iterable(imap(lambda layer: _parseKerasLayer(layer), kerasModel.layers)))
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/keras2caffe.py", line 137, in _parseKerasLayer
    ret = { 'layer': { 'name':layer.name, 'type':supportedLayers[layerType], 'bottom':_getBottomLayers(layer), 'top':layer.name, paramName:param[paramName] } }
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/keras2caffe.py", line 112, in _getBottomLayers
    return [ bottomLayer.name for bottomLayer in _getInboundLayers(layer) ]
  File "/usr/local/lib/python2.7/dist-packages/systemml/mllearn/keras2caffe.py", line 70, in _getInboundLayers
    for node in layer.inbound_nodes:  # get inbound nodes to current layer
AttributeError: 'Conv2D' object has no attribute 'inbound_nodes'
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 230, in serve_forever
    r, w, e = _eintr_retry(select.select, [self], [], [],
AttributeError: 'NoneType' object has no attribute 'select'

我正在使用 Tensorflow-GPU 1.5 和 Keras 2.1.3。

【问题讨论】:

    标签: python-2.7 keras systemml


    【解决方案1】:

    感谢您试用 Keras2DML。出现此问题是因为较新的 Keras 版本将属性 inbound_nodes 重命名为 _inbound_nodes。此问题已在昨天的提交中修复:https://github.com/apache/systemml/commit/9c3057a34c84d5bf1c698ad0a5c3c34d90412dbb

    由于您使用的是 TensorFlow-GPU,因此您可能需要检查使用 nvidia-smi 编译 Keras 模型时 TF 是否占用了大部分 GPU 内存。如果是,这里有两个简单的解决方法:

    一个。对 TF 隐藏 GPU:

    os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID'
    os.environ['CUDA_VISIBLE_DEVICES'] = ''
    import tensorflow as tf
    

    b.或者尽量减少 TensorFlow 带来的开销:

    from keras.backend.tensorflow_backend import set_session    
    tf_config = tf.ConfigProto()
    tf_config.gpu_options.allow_growth = True
    set_session(tf.Session(config=tf_config))
    

    【讨论】:

    • 线程 Thread-1 中的异常:回溯(最后一次调用):文件“/usr/lib/python2.7/threading.py”,第 801 行,在 __bootstrap_inner self.run() 文件中“/usr/lib/python2.7/threading.py”,第 754 行,在运行 self.__target(*self.__args, **self.__kwargs) 文件“/usr/lib/python2.7/SocketServer.py” ,第 230 行,在 serve_forever r, w, e = _eintr_retry(select.select, [self], [], [], AttributeError: 'NoneType' object has no attribute 'select'
    • 错误的根本原因应该在上面的某个地方,可能来自 SocketServer 调用的线程之一。这闻起来像 TF 或 PySpark 相关问题,因为 SystemML 不使用 SocketServer。您能否粘贴可能有助于调试此问题的整个堆栈?
    • @Fregy 我今天遇到了类似的错误。正如我猜测的那样,错误与 TensorFlow 的线程池有关,清除 TensorFlow 的会话应该可以解决问题:from keras import backend as K; K.clear_session()
    猜你喜欢
    • 2012-12-07
    • 2016-05-08
    • 2014-07-22
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2014-07-05
    相关资源
    最近更新 更多