Google Colab 上的 Keras YoloV3,AttributeError: module 'keras.backend' has no attribute 'control_flow_o
Posted
技术标签:
【中文标题】Google Colab 上的 Keras YoloV3,AttributeError: module \'keras.backend\' has no attribute \'control_flow_ops【英文标题】:Keras YoloV3 in on Google Colab, AttributeError: module 'keras.backend' has no attribute 'control_flow_opsGoogle Colab 上的 Keras YoloV3,AttributeError: module 'keras.backend' has no attribute 'control_flow_ops 【发布时间】:2021-10-09 09:48:46 【问题描述】:我使用 Roboflow 提供的 Keras YoloV3 implementation 在 Google Colab 上训练我自己的数据集。 尝试demo运行,出现AttributeError。
失败的解决方案1:Github Ticket 尝试将 K.control_flow_ops.while.. 更改为 tf.while... 这对我的 colab 笔记本不起作用。
错误代码:
/content/keras-yolo3/yolo3/model.py in yolo_loss(args, anchors, num_classes, ignore_thresh, print_loss)
392 ignore_mask = ignore_mask.write(b, K.cast(best_iou<ignore_thresh, K.dtype(true_box)))
393 return b+1, ignore_mask
--> 394 _, ignore_mask = ts.while_loop(lambda b,*args: b<m, loop_body, [0, ignore_mask])
395 ignore_mask = ignore_mask.stack()
396 ignore_mask = K.expand_dims(ignore_mask, -1)
AttributeError: module 'keras.backend' has no attribute 'control_flow_ops'
我知道由于 Google Colab 不断更新预安装的库,存在一些问题。
Google Colab 库的原始版本如下。
Python 3.7.11
Name: tensorflow
Version: 2.5.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: /usr/local/lib/python3.7/dist-packages
Requires: numpy, wheel, termcolor, astunparse, opt-einsum, keras-nightly, flatbuffers, protobuf, typing-extensions, six, google-pasta, gast, tensorflow-estimator, keras-preprocessing, tensorboard, wrapt, h5py, grpcio, absl-py
Required-by: kapre
Name: Keras
Version: 2.4.3
Summary: Deep Learning for humans
Home-page: https://github.com/keras-team/keras
Author: Francois Chollet
Author-email: francois.chollet@gmail.com
License: MIT
Location: /usr/local/lib/python3.7/dist-packages
Requires: scipy, h5py, pyyaml, numpy
Required-by: keras-vis
Name: h5py
Version: 3.1.0
Summary: Read and write HDF5 files from Python
Home-page: http://www.h5py.org
Author: Andrew Collette
Author-email: andrew.collette@gmail.com
License: BSD
Location: /usr/local/lib/python3.7/dist-packages
Requires: numpy, cached-property
Required-by: tensorflow, Keras, keras-vis
我还关注了this post,并将所有库降级为this response。此外,我尝试使用此替代方案降级 TensorFlow:
%tensorflow_version 1.x
这并没有解决问题。任何帮助都非常感谢。
【问题讨论】:
你能分享更多关于你的错误的堆栈跟踪吗?我的意思不仅仅是触发它的行,而是从它实际失败的库(tf,keras)的跟踪...... 【参考方案1】:选项 1:您可以根据存储库要求将 Keras 从 2.4.3 降级到 2.1
选项 2:您可以在 "import tensorflow as tf "
之后使用 tf.while_loop
而不是 K.control_flow_ops.while_loop
在这里看到一个拼写错误“ts”而不是 tf
_, ignore_mask = ts.while_loop(lambda b,*args: b<m, loop_body, [0, ignore_mask])
编辑
_, ignore_mask = tf.while_loop(lambda b,*args: b<m, loop_body, [0, ignore_mask])
【讨论】:
以上是关于Google Colab 上的 Keras YoloV3,AttributeError: module 'keras.backend' has no attribute 'control_flow_o的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Google colab 中更改 Keras/tensorflow 版本?
Google Colab 中的 Keras 调谐器和 TPU