0

私はkerasモデル内でテンソルフロー操作を試みていますが、メカニズムとラムダレイヤーがtfテンソルに対して行うことについてはかなり混乱しています。kerasモデルでのtf操作の使い方

だから、この作品:

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a') 
s= keras.layers.Lambda(lambda x: tf.transpose(tf.transpose(x)))(a) 
model = keras.models.Model(inputs=a, outputs=s) 

をしかし、これは動作しません:

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a') 
s = tf.transpose(tf.transpose(a)) 
s = keras.layers.Lambda(lambda x: x)(s) 
model = keras.models.Model(inputs=a, outputs=s) 

と、それは言う:

AttributeError: 'Tensor' object has no attribute '_keras_history' 

ので、内のTF操作を荷造りすることが常に必要です層?

質問2(私が以前のものを思いついたのはなぜですか):ケラスで行列乗算を行うためにカスタムレイヤーをパックする必要がありますか?

ありがとうございました。

答えて

1

質問1:ケラスモデルではテンソルフロー演算に含まれていない関数/変数が必要なので、レイヤーでtf演算をラッピングする必要があります。この場合、_keras_historyは、オペレーションをレイヤーでラップすることによってのみ生成されるプロパティです。

質問2:use_bias=FalseのケラースDense層を使用して行列乗算を考慮しましたか?重みベクトルに定数を使用する場合は、kernel_initializer={constant}trainable=Falseを設定できます。

関連する問題