【发布时间】:2019-08-14 20:58:54
【问题描述】:
我正在使用 tensorflow 对象检测 API,我希望能够在 python 中动态编辑配置文件,如下所示。我想在 python 中使用协议缓冲区库,但我不知道该怎么做。
model {
ssd {
num_classes: 1
image_resizer {
fixed_shape_resizer {
height: 300
width: 300
}
}
feature_extractor {
type: "ssd_inception_v2"
depth_multiplier: 1.0
min_depth: 16
conv_hyperparams {
regularizer {
l2_regularizer {
weight: 3.99999989895e-05
}
}
initializer {
truncated_normal_initializer {
mean: 0.0
stddev: 0.0299999993294
}
}
activation: RELU_6
batch_norm {
decay: 0.999700009823
center: true
scale: true
epsilon: 0.0010000000475
train: true
}
}
...
...
}
是否有一种简单/简便的方法可以将 image_resizer -> fixed_shape_resizer 中的高度等字段的特定值从 300 更改为 500?并用修改后的值写回文件而不更改其他任何内容?
编辑: 尽管@DmytroPrylipko 提供的答案适用于配置中的大多数参数,但我在“复合字段”方面遇到了一些问题..
也就是说,如果我们有这样的配置:
train_input_reader: {
label_map_path: "/tensorflow/data/label_map.pbtxt"
tf_record_input_reader {
input_path: "/tensorflow/models/data/train.record"
}
}
我添加这一行来编辑 input_path:
pipeline_config.train_input_reader.tf_record_input_reader.input_path = "/tensorflow/models/data/train100.record"
它抛出错误:
TypeError: Can't set composite field
【问题讨论】:
标签: python tensorflow protocol-buffers object-detection-api