TFのスリムウェイトを手動で変更して再トレーニング、微調整、予測を行うにはどうすればよいでしょうか

私は tf-slim モデルの特定のコンバージョン層でいくつかの重み値を変更することに興味があります。 Mobilenet_v1 と言ってください。アーキテクチャ全体とデータを以前と同じように保ちながら、それを行う簡単な方法はありますか?

例えば。: 訓練されたMobileNet_v1の最後のレベルのレイヤーからこの重みのない配列が得られたとします。

>>> conv=sess.run('MobilenetV1/Conv2d_13_depthwise/depthwise_weights_2:0')

それは私に全体の配列を与える:

...


[ -7.38371849e-01],
[  1.39969051e+00],
[  1.34190738e+00],
[ -5.66634417e-01],
[ -2.53899932e-01],
[  1.18222773e-01],
[  2.57152438e-01],
[  2.43642002e-01],
[ -5.11337161e-01],
[ -5.80285192e-01],
[  3.62841874e-01],
[ -4.72957313e-01],
[  7.34595060e-01],
[ -7.35578299e-01],
[  6.73987687e-01]]]], dtype=float32)

たとえば、特定の範囲内のすべての値を検索したいとします。

>>> numpy.count_nonzero((conv>=XX) & (conv<=YY))

それらの値をゼロに設定します。つまり、新しい変数の値が上書きされるため、新しいトレーニング済みモデルを使用してさらにトレーニングや微調整、または推論を行います。どうやってやるの?

1
文脈を教えてください。重みは単なる変数なので、変数を変更するのは簡単です。 tf-slim はツールキットを提供しないかもしれないので、より低いレベルのTensorFlow関数が必要になるかもしれません(そうするために操作を定義してセッションで実行する必要があります。私が知る限り、NumPy配列のいくつかの値を変更する)。より多くのデータを訓練するのではなく、手動でウェイトを変更するのは珍しいことです。
追加された 著者 Jeff Ferland,
あなたがしたいことは、TensorFlowでは可能性が高いですが、微調整は通常行われません。それはうまくいかないかもしれません。これを行うドライバーは何ですか?あなたはそれを試して何が起こっているのか分かりたいのですが、X/Yの問題があるかもしれないと心配しています。もし誰かが正しい答えをしたら、あなたはそれを試してみるでしょう。このような重みを設定することでネットワークが改善されるとの期待があるので、私はこれを行う」(私は確かにわからないが、そうは思わないだろう)
追加された 著者 Jeff Ferland,
@NeilSlater。 OK。私の更新された質問を見てください。
追加された 著者 Deepak Kamat,
@NeilSlaterが表示されます。だから私は、これをテストして変化を見ることができることを期待していました(否定的または肯定的)。最初にMWEサンプルを提供できると思いますか?
追加された 著者 Deepak Kamat,

答えはありません

0