2017-07-16 23 views
1
  1. Kerasの以前のレイヤーからWeightおよびBiasパラメータを必要とする独自の損失関数を定義するにはどうすればよいですか?KERAS独自の損失関数

  2. どのレイヤーから[W1、b1、W2、b2、Wout、bout]を得ることができますか?ここでは、通常よりもいくつかの変数を渡す必要があります(y_true、y_pred)。あなたの参照のために2つの画像を添付しました。

この損失機能を実装する必要があります。 enter image description here

enter image description here

答えて

0

あなたの第二の部分に答えるために、私は、可視化の目的のための私のモデルでは、すべての層のノルムを取得するには、次のコードを使用:今すぐ

for layer in model.layers: 
    if('Convolution' in str(type(layer))): 
     i+=1 
     layer_weight = [] 
     for feature_map in layer.get_weights()[0]: 
      layer_weight.append(linalg.norm(feature_map)/np.sqrt(np.prod(feature_map.shape))) 
     l_weights.append((np.sum(layer_weight)/len(layer_weight), layer.name, i)) 
     weight_per_layer.append(np.sum(layer_weight)/len(layer_weight)) 
     conv_weights.append(layer_weight) 

損失関数でこれを使用します私はこのような何かをしようとするだろう:

def get_loss_function(weights): 
    def loss(y_pred, y_true): 
     return (y_pred - y_true) * weights # or whatever your loss function should be 
    return loss 
model.compile(loss=get_loss_function(conv_weights), optimizer=SGD(lr=0.1)) 
+0

もう一つの問題は、例えば、 セイ私はl2_regularizationを使用しています Tensorflow has - tf.nn.l2_lossこれは使用できますか? 1.K.sum(K.square(K.abs(重み)) 2. tf.nn.l2_loss これらは同じ意味で使用できますか? –

+0

私は、12正則化がモデルのレイヤに格納され、レイヤインターフェイスを使用して抽出できると確信しています。 –

関連する問題