当我执行以下命令时,我从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
答案 0 :(得分:1)
我解决了问题
如果您使用.CSV file
制作xml_to_csv file.py
,
您必须检查train_labels.csv
文件中的文件扩展名,例如.jpg,.png和.jpeg。
在我的情况下,xtension名称将不存在!
解决方案:
添加如下例所示的扩展并运行以下命令:
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)]
只有在进行此编辑后,脚本才为我成功运行。