编辑来自 python 的 prototxt 文件

Edit prototxt file from python

我想使用 python 编辑 prototxt 文件。我只需要将源代码从一个目录更改为另一个目录。有没有一种简单的方法可以解决这个问题,而不必重新定义网络和重写整个文件?

例如,在我的 prototxt 文件中我有

layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  data_param {
    source: "examples/imagenet/ilsvrc12_train_lmdb"
    batch_size: 256
    backend: LMDB
  }
}

我只想更改字段 'source'。这是来自一个比较长的net def(这里贴的只是一个典型的例子,我有自己的net def),所以不用像caffe例子那样手动输入每个字段会节省很多时间

谢谢

我怀疑如果使用操作系统的命令行会更轻松。 UNIX (Linux) 有很好的编辑器(sed、awk 等)。让 OS 为您处理文件的打开、更改和重写。

您需要构建的命令会找到 source: 并将该行的其余部分替换为您提供的字符串。

适用的Python包括:

import os
os.system("<your command>")

另见 this SO 问题。