- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 TensorFlow 2.5.0(python 3.9、Ubuntu 20.04 和 Anaconda 3)来创建自定义对象检测器。我已标记我的图像并关注 this教程来达到这一点。但是,在尝试创建我的 tf.record 文件时,我收到以下错误( 请参阅下面列出的最后一行错误 ):
Traceback (most recent call last):
File "/home/database/Custom-Object-Detector-Workspace/Project/scripts/generate_tfrecord.py", line 169, in <module>
tf.app.run()
File "/home/database/python3.9/site-packages/tensorflow/python/platform/app.py", line 40, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/home/database/python3.9/site-packages/absl/app.py", line 303, in run
_run_main(main, args)
File "/home/database/python3.9/site-packages/absl/app.py", line 251, in _run_main
sys.exit(main(argv))
File "/home/database/Custom-Object-Detector-Workspace/Project/scripts/generate_tfrecord.py", line 159, in main
tf_example = create_tf_example(group, path)
File "/home/database/tensorflow/Custom-Object-Detector-Workspace/Project/scripts/generate_tfrecord.py", line 113, in create_tf_example
encoded_jpg = fid.read()
File "/home/database/python3.9/site-packages/tensorflow/python/lib/io/file_io.py", line 117, in read
self._preread_check()
File "/home/database/anaconda3/envs/tensorflow/lib/python3.9/site-packages/tensorflow/python/lib/io/file_io.py", line 79, in _preread_check
self._read_buf = _pywrap_file_io.BufferedInputStream(
tensorflow.python.framework.errors_impl.NotFoundError: /home/database/images/test/DJI_0001_008.jpg; No such file or directory
我的图像文件夹中没有名为 DJI_0001_008.jpg 的文件。为了确保照片被唯一命名,我在每个文件名(在 _008 和 .jpg 扩展名之间)附加了唯一的字母,以便在组合时可以将它们分别区分为单独的文件。快速
locate
命令会显示我的培训和测试文件夹中的所有文件,其中包含文件名:
/images/test/DJI_0001_008_r.jpg
/images/test/DJI_0001_008_r.xml
/images/train/DJI_0001_008_b.jpg
/images/train/DJI_0001_008_b.xml
/images/train/DJI_0001_008_m.jpg
/images/train/DJI_0001_008_m.xml
如您所见,每个 DJI_0001_008.jpg 都有一个唯一的字母,在照片本身和文件扩展名之前都附加了一个字母。但是 generate_tfrecord.py 脚本仍然抛出这个错误。
#######################################################
错误是通过运行这些 anaconda 命令生成的
#Activate Anaconda environment
conda activate tensorflow
#Set workplace directory where the python script is in
cd /home/desired_directory
#run generate_tfrecord.py script, set for creating a tf.record file in the test folder:
python3 generate_tfrecord.py -x /home/tensorflow_ihb/Custom-Object-Detector-Workspace/Project/images/test -l /home/tensorflow_ihb/Custom-Object-Detector-Workspace/Project/annotations/label_map.pbtxt -o /home/tensorflow_ihb/Custom-Object-Detector-Workspace/Project/annotations/test.record -c /home/tensorflow_ihb/Custom-Object-Detector-Workspace/Project/annotations/test.csv
这是生成错误的 generate_tfrecord.py 脚本:
""" Sample TensorFlow XML-to-TFRecord converter
usage: generate_tfrecord.py [-h] [-x XML_DIR] [-l LABELS_PATH] [-o OUTPUT_PATH] [-i IMAGE_DIR] [-c CSV_PATH]
optional arguments:
-h, --help show this help message and exit
-x XML_DIR, --xml_dir XML_DIR
Path to the folder where the input .xml files are stored.
-l LABELS_PATH, --labels_path LABELS_PATH
Path to the labels (.pbtxt) file.
-o OUTPUT_PATH, --output_path OUTPUT_PATH
Path of output TFRecord (.record) file.
-i IMAGE_DIR, --image_dir IMAGE_DIR
Path to the folder where the input image files are stored. Defaults to the same directory as XML_DIR.
-c CSV_PATH, --csv_path CSV_PATH
Path of output .csv file. If none provided, then no file will be written.
"""
import os
import glob
import pandas as pd
import io
import xml.etree.ElementTree as ET
import argparse
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # Suppress TensorFlow logging (1)
import tensorflow.compat.v1 as tf
from PIL import Image
from object_detection.utils import dataset_util, label_map_util
from collections import namedtuple
# Initiate argument parser
parser = argparse.ArgumentParser(
description="Sample TensorFlow XML-to-TFRecord converter")
parser.add_argument("-x",
"--xml_dir",
help="Path to the folder where the input .xml files are stored.",
type=str)
parser.add_argument("-l",
"--labels_path",
help="Path to the labels (.pbtxt) file.", type=str)
parser.add_argument("-o",
"--output_path",
help="Path of output TFRecord (.record) file.", type=str)
parser.add_argument("-i",
"--image_dir",
help="Path to the folder where the input image files are stored. "
"Defaults to the same directory as XML_DIR.",
type=str, default=None)
parser.add_argument("-c",
"--csv_path",
help="Path of output .csv file. If none provided, then no file will be "
"written.",
type=str, default=None)
args = parser.parse_args()
if args.image_dir is None:
args.image_dir = args.xml_dir
label_map = label_map_util.load_labelmap(args.labels_path)
label_map_dict = label_map_util.get_label_map_dict(label_map)
def xml_to_csv(path):
"""Iterates through all .xml files (generated by labelImg) in a given directory and combines
them in a single Pandas dataframe.
Parameters:
----------
path : str
The path containing the .xml files
Returns
-------
Pandas DataFrame
The produced dataframe
"""
xml_list = []
for xml_file in glob.glob(path + '/*.xml'):
tree = ET.parse(xml_file)
root = tree.getroot()
for member in root.findall('object'):
value = (root.find('filename').text,
int(root.find('size')[0].text),
int(root.find('size')[1].text),
member[0].text,
int(member[4][0].text),
int(member[4][1].text),
int(member[4][2].text),
int(member[4][3].text)
)
xml_list.append(value)
column_name = ['filename', 'width', 'height',
'class', 'xmin', 'xmax', 'ymin', 'ymax']
xml_df = pd.DataFrame(xml_list, columns=column_name)
xml_df.to_csv("dataset.csv")
return xml_df
def class_text_to_int(row_label):
return label_map_dict[row_label]
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)]
def create_tf_example(group, path):
with tf.gfile.GFile(os.path.join(path, '{}'.format(group.filename)), 'rb') as fid:
encoded_jpg = fid.read()
encoded_jpg_io = io.BytesIO(encoded_jpg)
image = Image.open(encoded_jpg_io)
width, height = image.size
filename = group.filename.encode('utf8')
image_format = b'jpg'
xmins = []
xmaxs = []
ymins = []
ymaxs = []
classes_text = []
classes = []
for index, row in group.object.iterrows():
xmins.append(row['xmin'] / width)
xmaxs.append(row['xmax'] / width)
ymins.append(row['ymin'] / height)
ymaxs.append(row['ymax'] / height)
classes_text.append(row['class'].encode('utf8'))
classes.append(class_text_to_int(row['class']))
tf_example = tf.train.Example(features=tf.train.Features(feature={
'image/height': dataset_util.int64_feature(height),
'image/width': dataset_util.int64_feature(width),
'image/filename': dataset_util.bytes_feature(filename),
'image/source_id': dataset_util.bytes_feature(filename),
'image/encoded': dataset_util.bytes_feature(encoded_jpg),
'image/format': dataset_util.bytes_feature(image_format),
'image/object/bbox/xmin': dataset_util.float_list_feature(xmins),
'image/object/bbox/xmax': dataset_util.float_list_feature(xmaxs),
'image/object/bbox/ymin': dataset_util.float_list_feature(ymins),
'image/object/bbox/ymax': dataset_util.float_list_feature(ymaxs),
'image/object/class/text': dataset_util.bytes_list_feature(classes_text),
'image/object/class/label': dataset_util.int64_list_feature(classes),
}))
return tf_example
def main(_):
writer = tf.python_io.TFRecordWriter(args.output_path)
path = os.path.join(args.image_dir)
examples = xml_to_csv(args.xml_dir)
grouped = split(examples, 'filename')
for group in grouped:
tf_example = create_tf_example(group, path)
writer.write(tf_example.SerializeToString())
writer.close()
print('Successfully created the TFRecord file: {}'.format(args.output_path))
if args.csv_path is not None:
examples.to_csv(args.csv_path, index=None)
print('Successfully created the CSV file: {}'.format(args.csv_path))
if __name__ == '__main__':
tf.app.run()
最佳答案
我改变了这个,我能够从我的 csv 生成我的 tf.records 测试和训练记录。
请注意,我为测试和训练 CSV 都这样做了
我变了:
python generate_tfrecord.py --csv_input=data/test_labels.csv --output_path=data/test.record
至
python generate_tfrecord.py --csv_input=data/test_labels.csv --output_path=data/test.record --image_dir=images
请注意我从我的目录中运行了这段代码:
关于生成 tf.record 文件时出现 Python 错误 - Tensorflow.python.framework.errors_impl.NotFoundError : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68928276/
我正在尝试使用python从elastisearch索引中检索文档。其代码如下: def get_data_es(): ES_HOST = { "host": "loc
我想在 Python 中使用 ElasticSearch 从给定的 URL(带有前缀)获取数据。这是我的代码: if __name__ == '__main__': username = "x
我现在很困惑,因为我通过添加“from mechanize import ControlNotFoundError”修复了一个错误。但是,它现在弹出此错误。任何帮助是极大的赞赏。我几天前才开始学习 p
我已经训练 TensorFlow 模型大约一周时间,偶尔进行微调。 今天,当我尝试微调模型时,出现错误: tensorflow.python.framework.errors_impl.NotFoun
代码: import pandas as pd import quandl quandl.ApiConfig.api_key = 'wsnt2aKcnkNMJjdqqwTz' pd = quandl.
我在请求范围内设置了一个employeebean resultEmployeeList 的数组列表。我不知道我是否以正确的方式这样做..但这里是jsp中使用的jSTL代码..
我正在尝试实现 D3 的动态功能,为此我遵循了 http://mbostock.github.io/d3/tutorial/bar-2.html 中给出的示例它工作正常,但是当我为 x 轴和 y 轴添
我在适用于 Linux 的 Windows 子系统的 Ubuntu 16.04 版本中使用 Tensorflow 1.14.0(通过 pip 安装)和 Python 2.7。我正在运行另一个人编写的脚
我正在尝试复制在时间序列中使用 RNN 的示例,如发布的 https://www.tensorflow.org/beta/tutorials/text/time_series#multi-step_m
当我使用以下方法恢复保存的模型时: checkpoint = tf.train.get_checkpoint_state(config.pre_model_dir) if checkpoint and
我在使removeChild()工作时遇到问题。我收到“NotFoundError:未找到节点 image_div.parentNode.removeChild(img);”错误 这是我的代码:
我正在 HTML5 中进行拖放操作,但是当我 dorp 我的项目时,我遇到了 Uncaught Error: NotFoundError: DOM Exception 8 任何人都可以帮助我。请检查下
我刚刚安装了基于 tf.__version__ = 1.14 的新环境。 以下是我配置张量板的方式: tensorboard = \ tf.keras.callbacks.TensorBoar
我使用以下代码使用 tensorflow 创建自定义初始。 import tensorflow as tf import sys interesting_class = sys.argv[1:] pr
我想我会喜欢并在 jQuery 事件期间使用普通 JavaScript。这个想法是,在单击标题时,我想向上滑动一个 div (可以工作)并将单击的标签替换为更大的标题。 根据我所读到的内容,这可能是由
收到此错误: # rails c FFI::NotFoundError: Function 'xmlRelaxNGSetParserStructuredErrors' not found in [li
问题:将 numpy 链接到正确的线性代数库。过程非常复杂,我可能会第六次寻找解决方案,但我不知道出了什么问题。我在 Ubuntu 12.04.5 上。 我重新安装了 blas 和 lapack,然后
我有一个 div里面另外三个div s 附加如下。状态值是通过循环来自 componentWillReceiveProps() 的 api 的结果来设置的。 .但我面临一个错误问题 Uncaught
无法真正描述为什么这不起作用。 我确实有 JS 对象控制一些数据,每个控件也有一个 HTML 对象。该对象存储在数组中。我在很多项目中都这样做过几次,但现在在使用 jQuery 的“wrapAll”时
我正在使用 retrain.py 在我的手部照片上重新训练对象检测器(以检测我握着多少根手指)。在 Tensorflow 网站上,我按照教程在花朵图像上对其进行了重新训练。所以我写了 python r
我是一名优秀的程序员,十分优秀!