tensorflow 在Tensoboard中查看10多个测试示例

oymdgrw7  于 2023-01-09  发布在  其他
关注(0)|答案(4)|浏览(119)

我正在一批1000张带标签的图像上运行Tensorflow Object Detection API,其中80张我保留用于测试。
这是通过使用提供的train.pyeval.py脚本,以及使用repo中提供的one管道来完成的。
在运行train.pyeval.py之后,我运行Tensorboard来监视训练进度,但是,当我转到 Image 选项卡时,我只找到了为训练保存的80个示例中的10个。
有没有办法强制Tensorboard使用所有提供的示例

daolsyd0

daolsyd01#

我自己来回答。
答案是不;在Tensorboard中只能同时看到10个评估图像
要测试更多的图像,必须在给定的检查点导出模型,并编写脚本,以便使用该模型对一组图像运行推理。
当然,这不会是自动的、真实的的,也不会像看到Tensorboard为您完成所有这些操作那样舒适,但这是一个有效的解决方案。

ars1skjm

ars1skjm2#

通过编辑object_detection/protos/eval. proto文件,然后重新运行protoc(请参阅Tensorflow文档),我已经能够在Tensorboard 1.11.0中实现这一点。例如,eval. proto中的这一行将启用100个示例(而不是默认的10个):

    • 可选uint32可视化数量= 1 [默认值= 100];**

这可能会影响系统内存、浏览器性能、eval性能等。因此请谨慎使用。

qyzbxkaa

qyzbxkaa3#

在训练前内联替换并重新运行protoc命令。

sed -i 's/uint32 num_visualizations = 1 \[default = 10\]/uint32 num_visualizations = 1 \[default = 30\]/' /content/models/research/object_detection/protos/eval.proto

cd /content/models/research
protoc object_detection/protos/*.proto --python_out=.
toiithl6

toiithl64#

您可以通过在eval_config块的pipeline.config文件中将num_visualizations设置为所需的最大值来更改此设置
如果已加载配置:

pipeline_config.eval_config.num_visualizations = 50

或在文件中:

eval_config {            
  num_visualizations: 50 
  ...
}

完整示例,阅读/更改/写入

# Read source model pipeline config
pipeline_config = pipeline_pb2.TrainEvalPipelineConfig()
with tf.io.gfile.GFile(SOURCE_PIPELINE_CONFIG_FILE_PATH, "r") as f:                                                                                                                                                                                                                     
    proto_str = f.read()                                                                                                                                                                                                                                          
text_format.Merge(proto_str, pipeline_config)  

#Set the parameter
pipeline_config.eval_config.num_visualizations = 50

#Change other parameters here

# Save adjusted pipeline config to own model
config_text = text_format.MessageToString(pipeline_config)                                                                                                                                                                                                        
with tf.io.gfile.GFile(TARGET_PIPELINE_CONFIG_FILE_PATH, "wb") as f:                                                                                                                                                                                                                     
    f.write(config_text)

相关问题