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

问题描述 投票:0回答:3

当我执行以下命令时,我从 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
python tensorflow windows-10 tensorflow-datasets
3个回答
2
投票

我的 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
投票

我解决了问题

如果您使用

.CSV file
制作
xml_to_csv file.py

您必须检查

train_labels.csv
文件中的文件扩展名,例如.jpg、.png和.jpeg。

就我而言,扩展名不存在!

解决方案:

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

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

它会起作用的!


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)]

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

© www.soinside.com 2019 - 2024. All rights reserved.