问题标签 [tensorflow-model-garden]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
210 浏览

tensorflow2.0 - 自定义训练 TF 目标检测模型评估

对于我从自定义训练模型获得的一些评估结果,我将不胜感激。我正在使用来自http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz的 SSD MobileNet v2 320x320

我的对象有 12 个类,我想检测和分类使用 PASCAL VOC 格式(每个图像一个 XML 文件)注释的对象。此外,我使用不同的随机种子进行了 2 次不同的训练。所以这个问题不仅仅针对一次培训。所以我正在根据官方 TF-Object-Detection GitHub https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/evaluation_protocols.md评估这些模型

我正在使用 2 个指标:

  • coco_detection_metrics :这个给出了一般平均平均精度 (mAP) @IoU=0.5, @IoU=0.75, @IoU0,5:.05:0.95 和良好的全局结果

有问题的指标按类别如下,因此对于每个类:

  • pascal_voc_detection_metrics 具有以下配置:

在这两种训练中,我目前的课程(大约 2-3k 图像超过 10k)在 0 附近具有非常低的精度,例如 10^-3,我真的不知道为什么,因为所有其他类别都高于 75-80%精确。

Tensorboard 显示的是按字母顺序排列的图表,所以我用班级编号注释了我的第二张图片。让我们看看第一次训练的指标: 1st_training

让我向您展示第二次培训的更详细的指标曲线: 2nd_training

先感谢您 !

0 投票
0 回答
26 浏览

python - 仅使用 1 个输入通道重新训练 ssd_mobilent_v2

我正在尝试使用 tensorflow 脚本重新训练 ssd_mobilenet_v2: https ://github.com/tensorflow/models/blob/master/research/object_detection/model_main_tf2.py 和默认配置文件: https ://github.com/tensorflow /models/blob/master/research/object_detection/configs/tf2/ssd_mobilenet_v2_320x320_coco17_tpu-8.config

但我想在拜耳图像上训练网络(这些图像只有 1 个通道,就像黑白图像一样)。

我不知道要编辑什么以将输入大小从(320x320x3)更改为(320x320x1)。如果有人能给我一些指示,那就太好了。

0 投票
1 回答
54 浏览

tensorflow - 使用 Tensorflow 对象检测 API 在 Faster R-CNN 中可视化来自 RPN 头部的提议区域

我正在尝试使用 Tensorflow 对象检测 API 调试经过训练的 Faster R-CNN 模型,并且我想在图像上可视化 RPN 的提议区域。谁能告诉我该怎么做?我在这里找到了一个帖子,但尚未得到答复。我尝试exporter_main_v2.py只使用 RPN 头导出模型,如此处所述这是我删除 second_stage 时的按摩。

我再次尝试导出模型而不删除 second_stage。这是我收到的信息

0 投票
0 回答
138 浏览

tensorflow - 模型动物园中的 Tensorflow 2.0 模型都没有处理文档

我有一个包含大约 100 张来自具有表格的文档的图像的数据集,所有表格和签名都已正确注释。我曾经从 tf1 模型 zoo 中训练 Faster RCNN InceptionV2,并且准确度非常完美。我只是想升级到 tf2 模型,我一直在训练以下模型:

Faster R-CNN ResNet50 V1 1024x1024 SSD ResNet50 V1 FPN 640x640 (RetinaNet50) CenterNet Resnet101 V1 FPN 512x512 SSD MobileNet V2 FPNLite 640x640 CenterNet HourGlass104 512x512 Faster R-CNN Inception ResNet V2 640x640

我已经在每一个上训练了大约 200k 步。它们都不能使用与来自 tf1 模型 Zoo 的 Faster RCNN InceptionV2 完美配合的相同数据。当我尝试任何图像时,边界框都不正确,它们的分数不超过 0.2,并且在大多数情况下,分数小于 0.1 或 0.001。我尝试了各种配置组合,例如:

我将训练和测试图像的大小都调整为 1024x1024,这有助于将准确度从 0.01 提高到 0.5,但我仍然看不到 90 年代的 detection_scores,就像它们曾经在 tf1 中一样。最大检测分数:

print('detection_scores max === ', detections['detection_scores'].numpy().max()) 我可以看到它是 0.40230057,通常是这样的数字。

PS 我在同一个模型上尝试了另一个数据集,它似乎有效。在表数据集上,我可以看到损失随着时间的推移而减少,但准确度也在降低,因此,例如,我尝试了 22.ckpt 的图像,检测到的表的得分为 0.7,然后在我尝试训练后更像 100k 步它在 101.ckpt 上,检测已更改,分数为 0.4 或相似。

0 投票
0 回答
84 浏览

python - 文件太大 无法刷新事件

我正在尝试训练网络。并且培训因错误而中断,指出文件太大并且无法刷新事件(tf.summary)。当我检查文件实际上是 4GB+

我正在使用 delf 实现(在此处找到训练脚本:https ://github.com/tensorflow/models/blob/master/research/delf/delf/python/training/train.py )。我之前在对象检测模型中也遇到过这个问题。我记得我只是通过省略事件编写来避免这个问题。但我想为这个问题找到一个解决方案/原因。

我发现有关缺少事件文件的问题,但无法为我的问题找到一个好的答案。我会感谢你在这件事上的帮助。

更新我到目前为止所尝试的内容

  • 更改 max_queue 参数 - 注意到 tf.summary.create_file_writer 有一个默认值为 10 的 max_queue 参数。所以我认为它给出了错误,因为它超过了这个默认值,所以无法刷新 11 个事件。所以我尝试了不同的值 20、200 并最终得到错误提示无法刷新 21 个事件、201 个事件等。
  • 更改 flush_millis - 将其更改为较低的值以更频繁地刷新事件
  • summary_writer.flush() - 代码没有 flush() 可能是因为它应该在 flush_millis 次之后刷新),但我尝试添加 flush() 以查看它是否有帮助

不幸的是,这些都不起作用。

初始错误的完整错误堆栈

0 投票
0 回答
96 浏览

python - TF1 vs TF2 对象检测模型推理速度(使用冻结图)

我目前将 TF1 和 TF2 object-detection-api 模型保存为 FrozenGraphs,然后运行 ​​TF1 样式(加载 graph/sess.run,尽管我使用的是 tensorflow 2.5.0)。

我发现对于类似的模型,TF2 FrozenGraphs 的运行速度要慢得多。我知道 TF1 和 TF2 模型之间的实现存在差异,但这是否解释了差异?

或者 TF2 模型是否需要以不同的特定方式运行?

例如,TF2 的 SSD_Mobilenet_V2 运行速度比 TF1 的 SSD_Mobilenet_V2 慢 50% 左右(输入大小、输出类数相同)。

我对 TF1 模型使用通常的 TF1 导出器 (exporter.py:_export_inference_graph())。对于 TF2,我在 exporter_lib_v2.py 中有一个 export_inference_graph() 的修改版本。(创建concrete_function后,我将变量转换为常量,然后转换为frozen_graph并保存)

0 投票
0 回答
169 浏览

object-detection-api - 使用 CenterNet HourGlass104 1024x1024 的对象检测器出现问题

我有两个从 Instagram 收集的数据集。其中之一是汽车的照片。我使用来自 TensorFlow 模型花园的 CenterNet HourGlass104 1024x1024,在 COCO 数据集上进行了预训练,训练了一个对象检测器来检测汽车中的公司徽标。它工作得很好。

然而,我在另一个数据集上尝试了相同的方法,这是人们拿着来自不同商店的购物袋的照片。物体检测器的工作是检测购物袋和品牌。这一次,object center loss非常高,mAP为零。

我用相同的配置训练了两个模型(TensorFlow 的默认配置,批量较小,不会遇到内存问题)。

我也尝试降低学习率,但没有任何改善。

我想我应该尝试更改 object_center_params,但我不知道应该更改哪些值。

我还训练了其他模型,例如 Faster R-CNN Inception、SSD 和 EfficientDet,它们都有效。对于这个特定的数据集,只有 CenterNet 没有。

这是我的 pipeline.config 文件:

我会很感激我能得到的任何帮助。

0 投票
2 回答
277 浏览

tensorflow - 有什么方法可以从 TF 对象检测 API 推理对一批图像而不是 1 个图像运行 EfficientDet?

我已经设法从模型园(Tensorflow 2.0,对象检测 API)下载了对象检测 API。我能找到的所有推理代码(在目录和在线)都适用于 1 的批量大小。

我正在考虑以某种方式重新配置pipeline.config文件。更具体地说 eval_config (batch_size = 5)。这可以做到吗?

令我困惑的是,如何通过可变批量大小支持进一步的训练/微调......但推理不是吗?

感谢您提供的任何提示。

0 投票
1 回答
138 浏览

python - 在自定义数据集上训练 Faster-RCNN 模型时加载检查点

我正在尝试使用 Faster-RCNN 架构加载检查点并填充模型权重(Faster R-CNN ResNet50 V1 640x640准确地说,从这里开始。我正在尝试为该网络加载权重,类似于在RetinaNet 的示例笔记本中完成的方式,他们请执行下列操作:

我正在尝试为我想要使用的 Faster-RCNN 网络提供类似的检查点加载机制,但是_base_tower_layers_for_heads_box_prediction_head

我也找不到关于Checkpoint为我的特定用例填充模型的哪些部分的文档。非常感谢有关如何解决此问题的任何帮助!

0 投票
1 回答
80 浏览

tensorflow - 我可以在不使用 TensorRT 的情况下在 Jetson 板上运行正常的 tensorflow 对象检测模型吗?

是否可以在 jetson 板上运行推理图而不将其转换为github repo中提到的 TensorRT 格式?

我们能否在不使用 Jetson 开发板上的 TensorRT 的情况下运行Tensorflow 对象检测 API ?