码迷,mamicode.com
首页 > Windows程序 > 详细

Tensorflow报错:AttributeError: module 'tensorflow._api.v1.io' has no attribute 'gfile'

时间:2020-07-15 01:01:01      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:训练   summary   问题   span   utils   函数   queue   自带   报错   

在使用YOLO v5进行自己数据集的训练的时候(python3 train.py),报了如下的错误:

Traceback (most recent call last):
  File "train.py", line 402, in <module>
    tb_writer = SummaryWriter(log_dir=increment_dir(runs/exp, opt.name))
  File "/home/riddleli/.local/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py", line 225, in __init__
    self._get_file_writer()
  File "/home/riddleli/.local/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py", line 256, in _get_file_writer
    self.flush_secs, self.filename_suffix)
  File "/home/riddleli/.local/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py", line 66, in __init__
    log_dir, max_queue, flush_secs, filename_suffix)
  File "/home/riddleli/.local/lib/python3.6/site-packages/tensorboard/summary/writer/event_file_writer.py", line 76, in __init__
    if not tf.io.gfile.exists(logdir):
AttributeError: module tensorflow._api.v1.io has no attribute gfile

从Traceback我们可以看到这个错误是YOLO调用了pytorch,pytorch又调了Tensorflow,最后由Tensorflow报出的错误,于是根据报错,我们前往

/home/riddleli/.local/lib/python3.6/site-packages/tensorboard/summary/writer/event_file_writer.py

这一地址(当然你要修改成你实际报错的位置),看看这个python文件的76行写了什么内容

技术图片

 

这两行代码很好理解,意思就是检查一下有没有叫做logdir的文件夹,如果没有的话就创建一个,但是似乎由于tensorflow版本的原因,tf.io.gfile这里出现了报错,一个最简单的思路就是使用Python自带的os.path和os.makedirs来替换掉这两个函数,将这两行程序改成如下所示: 

if not os.path.exists(logdir):
  os.makedirs(logdir)

随后我们还可以看到91行处也有类似的代码,如果不管它一会也会报错

self._general_file_writer = tf.io.gfile.GFile(self._file_name, "wb")

这里我们采用另外一种方案,经过查阅资料,我们得知:出现这个问题的根本原因在于tensorflow的新版本与旧版本的不兼容(真是有毒),在这一版tensorflow中,gfile不是tf.io的,而是直接是tf的,所以我们按照如下代码进行修改即可(当然你仍然可以使用Python自带的os类来实现这一个功能)

self._general_file_writer = tf.gfile.GFile(self._file_name, "wb")

修改完后保存,重新运行,错误消除

Tensorflow报错:AttributeError: module 'tensorflow._api.v1.io' has no attribute 'gfile'

标签:训练   summary   问题   span   utils   函数   queue   自带   报错   

原文地址:https://www.cnblogs.com/Briddle-ch/p/13302936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!