私が使用していますTensorflowの物体検出のAPIをトレーニングに。
どのファイルで、フリーズされたレイヤーが定義され、トレーニングでモデルを微調整します。微調整でフリーズしたレイヤーを変更する実験をする必要があります。
たとえば、Resnet50構成を使用している場合、フリーズしたレイヤーをどこで変更できますか?
それは確かにあなたがすることができます。
トレーニング用のprotoファイルを読み取るとfreeze_variables
、というフィールドがあります。これは、フリーズするすべての変数を含むリストであると想定されます。たとえば、トレーニング中にそれらを除外します。
最初のブロックの最初のユニットの最初のボトルネックからウェイトをフリーズしたい場合は、追加することでそれを行うことができます
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
したがって、構成ハエは次のようになります。
train_config: {
batch_size: 1
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
...
テンソルフローグラフを確認することで、ウェイトが実際にフリーズしていることを確認できます。
示されているように、ウェイトはtrain
もう動作していません。
の特定のパターンを選択freeze_variables
することで、変数を非常に柔軟にフリーズできます(テンソルフローグラフからレイヤー名を取得できます)。
ところで、ここでは実際のフィルタリング操作があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加