2

グラフで行われた計算を、同じことを行うカスタム op に置き換えようとしています。

グラフに定数Aと重み変数Wがあるとします。カスタム op を作成して、これら 2 つの入力を取得し、計算全体を実行します (重み更新の最後のステップを除く)。

custom_op_tensor = custom_module.custom_op([A,W])
g_def = tf.get_default_graph().as_graph_def()
input_map = { tensor.name : custom_op_tensor }
train_op, = tf.import_graph_def(g_def, input_map=input_map, return_elements=[train_op])

インポート グラフ定義の後に、2 つWの があります。1 つは元のグラフ定義からのもので、もう 1 つはインポートされたグラフにあります。train op を実行すると、カスタム op は古いものWを読み取り、新しいWものが更新されます。その結果、勾配降下法は正しいことを行うことができなくなります。

問題は、 custom_op のインスタンス化に入力の重み tensor が必要なことWです。新しいWものは、インポート後にのみ認識されます。また、インポートにはカスタム操作が必要です。この問題をどのように回避しますか?

4

1 に答える 1

0

r0.08、r0.09、r0.10、r0.11 のどのバージョンの Tensorflow を使用しているか正確に教えていただけますか?

グラフ内の op を別の op で変更することは不可能です。しかし、W にアクセスする可能性がある場合でも、それを更新する train op を実行する前に( copy モジュールの deepcopy() を使用して) W のバックアップ コピーを作成できます。

よろしく

于 2016-10-19T15:47:06.077 に答える