bat*_*man 4 deep-learning conv-neural-network tensorflow object-detection-api
我在训练中使用Tensorflow 的对象检测 API。
在哪个文件中,冻结层被定义为在训练中对模型进行微调。我需要在微调中尝试更改冻结层。
例如,如果我使用Resnet50 配置,我可以在哪里更改冻结层?
dan*_*ang 12
那当然可以。
通过读取用于训练的proto文件,有一个名为 的字段freeze_variables,这应该是一个包含您要冻结的所有变量的列表,例如在训练期间排除它们。
假设您想冻结第一个块的第一个单元中第一个瓶颈的权重,您可以通过添加
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
Run Code Online (Sandbox Code Playgroud)
所以你的配置文件看起来像这样:
train_config: {
batch_size: 1
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
...
Run Code Online (Sandbox Code Playgroud)
如图所示,权重train不再起作用。
通过为 选择特定模式freeze_variables,您可以非常灵活地冻结变量(您可以从张量流图中获取层名称)。
顺便说一句,这是实际的过滤操作。
| 归档时间: |
|
| 查看次数: |
3692 次 |
| 最近记录: |