0

テンソルフローでモデルの保存されたパラメーターを復元します。異なるレイヤーと異なるパラメーター サイズを使用して、モデルのテストの違いを構成したいと考えています。

たとえば、保存したパラメーターの 1 つが次のようになっているとします。 W_conv1 = weight_variable([7 , 7, 1, 64])

これを復元すると機能します。しかし、私はこのように私のパラメータを変更したい: W_conv1 = weight_variable([5 , 5, 1, 64]) or W_conv1 = weight_variable([5 , 5, 1, 50]) or W_conv1 = weight_variable([9 , 9, 1, 80]) or ....

ここで、保存したチェックポイントを使用して、新しい構成で復元したいと考えています。パラメータの各次元のサイズが変更された場合、保存したパラメータからランダムに初期化され、場所がランダムに初期化されることを思い出させます。

これをテンソルフローで行うことは可能ですか?

4

1 に答える 1

0

TensorFlow は、既存の変数のスライスを取得する演算子 ( ) と、既存の変数 ( tf.slice) に値 (場合によってはスライス) を割り当てる演算子も提供しますtf.assign。したがって、次の手順で目的を達成できます。

  • チェックポイントから古い変数を復元します
  • ランダムに初期化された、異なる形状の新しい変数を作成します
  • 古い変数の関連するスライスを新しい変数に割り当てます

たとえば、古い変数に shape が[7, 7, 1, 64]あり、新しい変数にshape がある場合、古い変数[5, 5, 1, 64]をスライスして新しい変数に代入するためのレシピを次に示します。

# old_variable has the shape [7, 7, 1, 64]
new_variable = tf.Variable(np.random.rand(5, 5, 1, 64))
assign_new_var = tf.assign(new_variable, old_variable([:5, :5, :, :]))
于 2016-07-05T15:00:30.187 に答える