KerasDenseレイヤーでバイアスではなく重みを共有する方法

CSHhhh

この論文で説明されているように、私は通常の回帰のモデルを作成しようとしていますその大部分は最終層で重みを共有することですが、ランクの単調性を得るためのバイアスではありません(基本的に、P [Y> N]がそのようなNに対して常にP [Y> N-1]より大きくなければならないことを保証するため) 。値が非常に少ない値がいくつかあるので、これは私にとって非常に望ましいことですが、それでもそれらの確率を取得したいと思います。今のところ、私はそれが数をエンコードする方法を実装しました、そして時々P(Y> 5)> P(Y> 4)の確率として単調性をランク付けしません。

Kerasでウェイトシェアリングを達成できますが、バイアスシェアリングは達成できませんか?機能APIには重みとバイアスを共有する方法があることは知っていますが、それはこのシナリオでは役に立ちません。助けてくれる人に感謝します。

編集:重みを共有するが、1つのレイヤー内でN個のニューロンとバイアスを共有しないか、N個のレイヤー間で問題を解決します。また、Dense()のuse_bias引数をfalseに設定し、ある種のカスタムBiasレイヤーを作成することでも問題を解決できると思いますが、その方法がわかりません。

6つのニューロンと5つの入力の方程式はこれだと思います

op1 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b1
op2 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b2
op3 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b3
op4 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b4
op5 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b5
op6 = w1z1 + w2z2 + w3z3 + w4z4 + w5z5 + b6

ここで、w1からw5は重み、z1からz5は入力、b1からb6はバイアス項です。

スリハリ・ハンバルワディ

これを実現する方法の1つは、カスタムbiasレイヤーを定義することです。これを行う方法は、次のとおりです。PS:必要に応じて入力形状/初期化子を変更します。

import tensorflow as tf
print('TensorFlow:', tf.__version__)

class BiasLayer(tf.keras.layers.Layer):
    def __init__(self, units, *args, **kwargs):
        super(BiasLayer, self).__init__(*args, **kwargs)
        self.bias = self.add_weight('bias',
                                    shape=[units],
                                    initializer='zeros',
                                    trainable=True)

    def call(self, x):
        return x + self.bias

z1 = tf.keras.Input(shape=[1])
z2 = tf.keras.Input(shape=[1])
z3 = tf.keras.Input(shape=[1])
z4 = tf.keras.Input(shape=[1])
z5 = tf.keras.Input(shape=[1])

dense_layer = tf.keras.layers.Dense(units=10, use_bias=False)


op1 = BiasLayer(units=10)(dense_layer(z1))
op2 = BiasLayer(units=10)(dense_layer(z2))
op3 = BiasLayer(units=10)(dense_layer(z3))
op4 = BiasLayer(units=10)(dense_layer(z4))
op5 = BiasLayer(units=10)(dense_layer(z5))

model = tf.keras.Model(inputs=[z1, z2, z3, z4, z5], outputs=[op1, op2, op3, op4, op5])
model.summary()

出力:

TensorFlow: 2.1.0-dev20200107
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
input_2 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
input_3 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
input_4 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
input_5 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
dense (Dense)                   (None, 10)           10          input_1[0][0]                    
                                                                 input_2[0][0]                    
                                                                 input_3[0][0]                    
                                                                 input_4[0][0]                    
                                                                 input_5[0][0]                    
__________________________________________________________________________________________________
bias_layer (BiasLayer)          (None, 10)           10          dense[0][0]                      
__________________________________________________________________________________________________
bias_layer_1 (BiasLayer)        (None, 10)           10          dense[1][0]                      
__________________________________________________________________________________________________
bias_layer_2 (BiasLayer)        (None, 10)           10          dense[2][0]                      
__________________________________________________________________________________________________
bias_layer_3 (BiasLayer)        (None, 10)           10          dense[3][0]                      
__________________________________________________________________________________________________
bias_layer_4 (BiasLayer)        (None, 10)           10          dense[4][0]                      
==================================================================================================
Total params: 60
Trainable params: 60
Non-trainable params: 0
__________________________________________________________________________________________________

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムKerasモデル関数でレイヤーの重みを共有する方法

分類Dev

ケラスの2つの密なレイヤー間で重みを共有する

分類Dev

サーバーではなく NoMachine プレーヤーのみをインストールする方法

分類Dev

ケラスの密なレイヤー間で共有される重み行列

分類Dev

ケラのレイヤー間で畳み込みカーネルを共有する方法は?

分類Dev

配列値でスタイルレイヤーの重みを更新する方法

分類Dev

いくつかの反復でレイヤーの重みをフリーズする方法は?

分類Dev

共有レイヤーをkerasでモデル化する方法は?

分類Dev

TensorFlowで個々のレイヤーの重み減衰を定義する方法は?

分類Dev

TheanoとKerasで同じ重みを共有するレイヤーの2つの同一のブランチを実装する方法

分類Dev

Keras-2つの別々のFullyConnectedレイヤーでCNNの畳み込み部分を共有する方法

分類Dev

Tensorflow Object Detection APIで畳み込みレイヤーの重みを初期化する方法は?

分類Dev

Kerasで特定のレイヤーのバイアス値を設定する方法

分類Dev

TensorFlowで固定の重みでレイヤーを構築する

分類Dev

ケラスのレイヤーのブロックの重みを共有する

分類Dev

mxnetのBucketingModuleの特定のレイヤー間での重みの共有を回避しますか?

分類Dev

daoレイヤーで遅延初期化されたHibernateエンティティを処理し、異なるレイヤーで状態を共有する方法

分類Dev

PCIデバイスが同じアドレス空間を共有するのはなぜですか?

分類Dev

リソースからmp3オーディオファイルを再生する方法は?(SoundPlayerではなくメディアプレーヤーを使用)

分類Dev

Scalaのアプリケーション間でビジネスレイヤーを共有する

分類Dev

Docker-画像間でレイヤーを共有する

分類Dev

レイヤー2仮想デバイスであるLinuxBridgeのIPアドレスはなぜですか?

分類Dev

Keras順次モデルでバイアスの重みを抽出する方法は?

分類Dev

ケラスのConv2Dからレイヤーの重みを正しく取得するにはどうすればよいですか?

分類Dev

ONNXモデルから個々のレイヤーの重みとバイアスの値を読み取る方法は?

分類Dev

clip_by_weight のテンソル形式で Keras レイヤーの重み変数にアクセスする方法は?

分類Dev

ワイヤレスルーターがローカルワイヤレスファイル共有を設定できるかどうかを知る方法

分類Dev

直後にバイアスのある埋め込みレイヤーとPyTorchの線形レイヤーの違いは何ですか

分類Dev

重みを共有する2つのレイヤーを作成するにはどうすればよいですか?一方は他方の転置です。

Related 関連記事

  1. 1

    カスタムKerasモデル関数でレイヤーの重みを共有する方法

  2. 2

    ケラスの2つの密なレイヤー間で重みを共有する

  3. 3

    サーバーではなく NoMachine プレーヤーのみをインストールする方法

  4. 4

    ケラスの密なレイヤー間で共有される重み行列

  5. 5

    ケラのレイヤー間で畳み込みカーネルを共有する方法は?

  6. 6

    配列値でスタイルレイヤーの重みを更新する方法

  7. 7

    いくつかの反復でレイヤーの重みをフリーズする方法は?

  8. 8

    共有レイヤーをkerasでモデル化する方法は?

  9. 9

    TensorFlowで個々のレイヤーの重み減衰を定義する方法は?

  10. 10

    TheanoとKerasで同じ重みを共有するレイヤーの2つの同一のブランチを実装する方法

  11. 11

    Keras-2つの別々のFullyConnectedレイヤーでCNNの畳み込み部分を共有する方法

  12. 12

    Tensorflow Object Detection APIで畳み込みレイヤーの重みを初期化する方法は?

  13. 13

    Kerasで特定のレイヤーのバイアス値を設定する方法

  14. 14

    TensorFlowで固定の重みでレイヤーを構築する

  15. 15

    ケラスのレイヤーのブロックの重みを共有する

  16. 16

    mxnetのBucketingModuleの特定のレイヤー間での重みの共有を回避しますか?

  17. 17

    daoレイヤーで遅延初期化されたHibernateエンティティを処理し、異なるレイヤーで状態を共有する方法

  18. 18

    PCIデバイスが同じアドレス空間を共有するのはなぜですか?

  19. 19

    リソースからmp3オーディオファイルを再生する方法は?(SoundPlayerではなくメディアプレーヤーを使用)

  20. 20

    Scalaのアプリケーション間でビジネスレイヤーを共有する

  21. 21

    Docker-画像間でレイヤーを共有する

  22. 22

    レイヤー2仮想デバイスであるLinuxBridgeのIPアドレスはなぜですか?

  23. 23

    Keras順次モデルでバイアスの重みを抽出する方法は?

  24. 24

    ケラスのConv2Dからレイヤーの重みを正しく取得するにはどうすればよいですか?

  25. 25

    ONNXモデルから個々のレイヤーの重みとバイアスの値を読み取る方法は?

  26. 26

    clip_by_weight のテンソル形式で Keras レイヤーの重み変数にアクセスする方法は?

  27. 27

    ワイヤレスルーターがローカルワイヤレスファイル共有を設定できるかどうかを知る方法

  28. 28

    直後にバイアスのある埋め込みレイヤーとPyTorchの線形レイヤーの違いは何ですか

  29. 29

    重みを共有する2つのレイヤーを作成するにはどうすればよいですか?一方は他方の転置です。

ホットタグ

アーカイブ