如何修复丢失的文件或文件夹错误:tf.app.run()中的文件“ generate_tfrecord.py”,第110行?

时间:2018-10-18 09:10:04

标签: python tensorflow windows-10 tensorflow-datasets

当我执行以下命令时,我从Tensorflow中收到以下错误“缺少文件或文件夹”。我已经检查了所有在线解决方案中的此错误,但没有任何方法可以解决我的错误。

python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record

错误:

    File "generate_tfrecord.py", line 110, in 
    tf.app.run()
    File "C:\anaconda3\envs\tensorflowc\lib\site-packages\tensorflow\python\platform\app.py", line 125, in run
    _sys.exit(main(argv))
    File "generate_tfrecord.py", line 101, in main
    tf_example = create_tf_example(group, path)
    File "generate_tfrecord.py", line 56, in create_tf_example
    encoded_jpg = fid.read()
    File "C:\anaconda3\envs\tensorflowc\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 125, in read
    self._preread_check()
    File "C:\anaconda3\envs\tensorflowc\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 85, in _preread_check
    compat.as_bytes(self.__name), 1024 * 512, status)
    File "C:\anaconda3\envs\tensorflowc\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 519, in exit
    c_api.TF_GetCode(self.status.status))
    tensorflow.python.framework.errors_impl.NotFoundError: NewRandomAccessFile failed to Create/Open: C:\tensorflowc\models\research\object_detection\images\train\tr1138a1a1_3_lar : The system cannot find the file specified.
    ; No such file or directory

3 个答案:

答案 0 :(得分:1)

我解决了问题

如果您使用.CSV file制作xml_to_csv file.py

您必须检查train_labels.csv文件中的文件扩展名,例如.jpg,.png和.jpeg。

在我的情况下,xtension名称将不存在!

enter image description here

解决方案:

添加如下例所示的扩展并运行以下命令:

python generate_tfrecord.py 
    --csv_input=images\train_labels.csv 
    --image_dir=images\train 
    --output_path=train.record

它将起作用!

答案 1 :(得分:1)

我的csv文件包含带有jpg扩展名的图像名称,并且OP仍然发布了此错误。我尝试用以下方法解决它:

python3 generate_tf_record.py --csv_input=data/train_labels.csv --output_path=train.record

python3 generate_tf_record.py --csv_input=data/test_labels.csv --output_path=test.record

所有图像都位于一个文件夹和标记中,如下所示:

flags.DEFINE_string('csv_input', '','data/train_labels.csv')
flags.DEFINE_string('output_path','', 'train.record')
flags.DEFINE_string('image_dir', '', 'images')

当我将保存的记录文件从主文件夹复制到数据文件夹时,该问题已解决。

答案 2 :(得分:0)

我遇到了同样的问题,没有多少检查文件路径(相对或绝对)对我有用。我的目录被组织成在同一文件夹中包含图像文件和 xml。问题归结为 generate_tfrecord.py 中 split 函数的 return 语句在它所查看的文件名后没有文件扩展名:

def split(df, group):
    data = namedtuple('data', ['filename', 'object'])
    gb = df.groupby(group)
    return [data(filename, gb.get_group(x)) for filename, x in zip(gb.groups.keys(), gb.groups)]

如果您的训练和测试文件夹在同一文件夹中包含图像和 xml,我建议对 generate_tfrecord.py 文件进行此编辑:

def split(df, group):
    data = namedtuple('data', ['filename', 'object'])
    gb = df.groupby(group)
    return [data(filename + '.jpg', gb.get_group(x)) for filename, x in zip(gb.groups.keys(), gb.groups)]

只有在进行此编辑后,脚本才为我成功运行。