私は、ベクトル行列乗算を実行して別の層に渡す前に、kerasでラムダ層を作成しようとしています。マトリックスは固定されています(私はそれを学びたくありません)。以下のコード:行列ベクトル乗算のKeras Lambda層
model.add(Dropout(0.1))
model.add(Lambda(lambda x: x.dot(A)))
model.add(Dense(output_shape, activation='softmax'))
model.compile(<stuff here>)}
A固定行列であり、私はx.dot(A)をやりたい私はこれを実行すると
、私は次のエラーを取得する:
'Tensor' object has no attribute 'dot'
dotをmatmulに置き換えたときに同じエラーが発生しました(テンセントフローバックエンドを使用しています)
最後に、ラムダレイヤーを
model.add(Lambda(lambda x: x*A))
私は下のエラーが表示されます。私はKerasに新たなんだので、任意の助けが理解されるであろう
model.add(Lambda(lambda x: x*G))
model.add(Dense(output_shape, activation='softmax'))
AttributeError: 'tuple' object has no attribute '_dims'
。おかげ
、これは合理的なようだと、私はそれを試してみましたが、次を得る:層重量形状(1、265)に提供重量形状に対応していない(265、 265)。 265はA.shape [1]です(正方行列です) – NSR
'model.summary()'を提供できますか?前のレイヤの出力サイズが1に等しいと思われます。 –
前のレイヤの出力シェイプが '(None、265、1)'の場合、 'Flatten'レイヤを追加することで余分な軸を削除できます。 –