python - 如何在 Tensorflow 对象检测管道的配置文件中动态更改数据增强参数?
问题描述
我正在尝试创建一个对象检测框架,该框架从用户那里获取输入并根据用户选择创建自定义对象检测模型。为此,我必须根据模型、超参数和用户选择的增强选项对配置文件进行动态更改。到目前为止,我能够从 pipeline.config 文件中更改一些参数,但是在数据扩充方面,我无法在这些字段中进行任何更改。有谁知道我们如何在给定用户输入的情况下使用 python 脚本动态更改数据增强参数。我们如何为其添加更多选项。
import tensorflow as tf
from google.protobuf import text_format
from object_detection.protos import pipeline_pb2
def main():
pipeline_config = pipeline_pb2.TrainEvalPipelineConfig()
with tf.gfile.GFile("ssd_mobilenet_v2_coco.config", "r") as f:
proto_str = f.read()
text_format.Merge(proto_str, pipeline_config)
pipeline_config.model.ssd.image_resizer.fixed_shape_resizer.height = 300
pipeline_config.model.ssd.image_resizer.fixed_shape_resizer.width = 300
pipeline_config.model.ssd.num_classes = 2
pipeline_config.train_config.batch_size = 1
pipeline_config.train_config.data_augmentation_options[0]['keypoint_flip_permutation'] = 1
config_text = text_format.MessageToString(pipeline_config)
with tf.gfile.Open('pipeline.config', "wb") as f:
f.write(config_text)
if __name__ == '__main__':
main()
对于上面的代码,我收到此错误:
WARNING:tensorflow:From /home/test.py:11: The name tf.gfile.GFile is deprecated. Please use tf.io.gfile.GFile instead.
Traceback (most recent call last):
File "/home/test.py", line 29, in <module>
main()
File "/home/test.py", line 21, in main
pipeline_config.train_config.data_augmentation_options[0]['keypoint_flip_permutation'] = 1
TypeError: 'PreprocessingStep' object does not support item assignment
解决方案
推荐阅读
- php - Woocommerce 设置客户提供的注释也返回 html 标签
- c# - 如何将 Excel 表格数据迭代到 DataGridView?
- c# - 使用依赖于记录器的选项验证器创建依赖于选项的自定义记录器时出现循环依赖异常
- c# - 有没有办法缩短重复数学
- php - 我正在使用 PHPExcel 将颜色混合到 excels 单元中,将颜色变化反映到开放式办公室,但不反映到 microsoft-office o
- html - 通过 bulma 文件上传重用来自 fileInput 的闪亮进度条
- javascript - 从模板中的父组件触发子函数
- r - 在 R 中合并 SpatialPoints 和 SpatialPolygons 数据框
- angular - Angular 10:如何在延迟加载的功能模块中重置 RouterConfig
- python - 当我们在熊猫中“分组”时进行多次计算