How to fix missing files or folder error: File "generate_tfrecord.py", line 110, in tf.app.run()?
How to fix missing files or folder error: File "generate_tfrecord.py", line 110, in tf.app.run()?
当我执行以下命令时,我从 Tensorflow "missing file or folder" 收到以下错误。我已经检查了此错误的所有在线解决方案,但没有解决我的错误。
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
我解决了问题
如果您使用 xml_to_csv file.py
、
制作 .CSV file
您必须检查 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
它会起作用的!
我的 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')
将保存的记录文件从主文件夹复制到数据文件夹后问题解决
我 运行 遇到了同样的问题,并且没有任何检查文件路径(相对或绝对)对我有用。我的目录被组织为在同一文件夹中包含图像文件和 xml。问题归结为 generate_tfrecord.py 中拆分函数的 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)]
仅在进行此编辑后,我的脚本 运行 才成功。
当我执行以下命令时,我从 Tensorflow "missing file or folder" 收到以下错误。我已经检查了此错误的所有在线解决方案,但没有解决我的错误。
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
我解决了问题
如果您使用 xml_to_csv file.py
、
.CSV file
您必须检查 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
它会起作用的!
我的 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')
将保存的记录文件从主文件夹复制到数据文件夹后问题解决
我 运行 遇到了同样的问题,并且没有任何检查文件路径(相对或绝对)对我有用。我的目录被组织为在同一文件夹中包含图像文件和 xml。问题归结为 generate_tfrecord.py 中拆分函数的 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)]
仅在进行此编辑后,我的脚本 运行 才成功。