0
点赞
收藏
分享

微信扫一扫

【AttributeError: ‘XXX‘ object has no attribute ‘_is_graph_network‘】keras调用tensorborad时报错

Just_Esme 2022-05-01 阅读 51

参考链接:https://www.jianshu.com/p/9da54361d289

环境:

硬件:gpu(nvidia GeForce rtx 2060)
软件:keras=2.3.1
	  tensorflow=2.1.0
	  tensorboard=2.1.0
	  CUDA=10.0
	  cudnn=7.4
	  CUDA Driver = CUDART, CUDA Driver Version = 11.6, CUDA Runtime Version = 10.0, NumDevs = 1, Device0 = NVIDIA GeForce RTX 2060
	  numpy=1.16.5(这个版本有警告,估计还是不太匹配)

错误原因,keras和tensorflow及tensorboard之间的版本不匹配,模型用的是keras的,且keras的Backend使用的是tensorflow,而tensorflow有些版本里面自带的tensorflow_keras的一些属性和keras库的不完全统一。
修改报错的callback.py文件,添加判断是否有’_is_graph_network’属性。

with context.eager_mode():
      self._close_writers()
      if self.write_graph:
        with self._get_writer(self._train_run_name).as_default():
          with summary_ops_v2.always_record_summaries():
            if not model.run_eagerly:
              summary_ops_v2.graph(K.get_graph(), step=0)

            # summary_writable = (
            #     self.model._is_graph_network or  # pylint: disable=protected-access
            #     self.model.__class__.__name__ == 'Sequential')  # pylint: disable=protected-access
            if hasattr(self.model, '_is_graph_network'):
              summary_writable = (
                  self.model._is_graph_network or  # pylint: disable=protected-access
                  self.model.__class__.__name__ == 'Sequential')  # pylint: disable=protected-access
            else:
              summary_writable = self.model.__class__.__name__ == 'Sequential'
            if summary_writable:
              summary_ops_v2.keras_model('keras', self.model, step=0)
举报

相关推荐

0 条评论