私はWGANを実装しており、ウェイト変数をクリップする必要があります。clip_by_weightのテンソル形式のケラス層の重み変数へのアクセス方法は?
私は現在、を使用しています。TensorflowとKerasを高レベルAPIとして使用しています。したがって、変数を手動で作成して初期化することを避けるために、Kerasでレイヤーを構築します。
問題は、体重可変をクリップするWGANの必要性です。これは、一度それらの体重可変テンソルを得たらtf.clip_by_value(x, v0, v1)
を使用して行うことができますが、私はそれらを安全に取得する方法はわかりません。
1つの可能な解決策は、おそらくtf.get_collection()
を使用して、すべての訓練可能な変数を得ることです。しかし、私はどのように体重バイアスなし変数なしで取得する方法がわからない。
クリップ操作をする必要があるので、私はnumpy
のAPIでそれらをクリップしてlayer.set_weights()
を使用して、それらを設定するが、これはCPU-GPU法人が必要になる場合があり、そして良い選択ではないかもしれないことができますが、別の解決策はlayer.get_weights()
ですが、それはnumpy
の配列を取得します列車ステップごとに実行する必要があります。
正確な私はTFの下位レベルのAPIやTensorBoardから得ることができる変数名を使用して直接アクセスしますが、Kerasの命名規則は安定しているとは限りません。
clip_by_value
をTensorflowとKerasのW
にのみ実行するクリーンな方法はありますか?
に
W
のparamとb_constraintに制約を加算ありがとうあなたの返事のために。私はy = ax + bのおもちゃの問題でそれを試しました、それは完璧に動作します! – soar0x48あなたは大歓迎です。 – indraforyou
Tensorflowで実装する際に問題があります。 model.fitを使用すると、完全に動作しますが、TFコマンドでsess.run(tran_step、...)を使用すると、制約が機能しないようです。どのようにそれを修正するための任意のアイデア? – soar0x48