私は2D入力(またはサンプル数を考慮すると3D)を持っています。この入力を受け取り、別の2Dマトリックスを出力するケラスレイヤーを適用したいと思います。たとえば、サイズ(ExV)の入力がある場合、学習重み行列は(SxE)と出力(SxV)になります。密集層でこれを行うことはできますか?Kerasカスタムレイヤー2D入力 - > 2D出力
EDIT(ナッシム要求):
第一層は何もしません。ラムダレイヤーに入力を与えるだけです:
from keras.models import Sequential
from keras.layers.core import Reshape,Lambda
from keras import backend as K
from keras.models import Model
input_sample = [
[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]
,[[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35],[36,37,38,39,40]]
,[[41,42,43,44,45],[46,47,48,49,50],[51,52,53,54,55],[56,57,58,59,60]]
]
model = Sequential()
model.add(Reshape((4,5), input_shape=(4,5)))
model.add(Lambda(lambda x: K.transpose(x)))
intermediate_layer_model = Model(input=model.input,output=model.layers[0].output)
print "First layer:"
print intermediate_layer_model.predict(input_sample)
print ""
print "Second layer:"
intermediate_layer_model = Model(input=model.input,output=model.layers[1].output)
print intermediate_layer_model.predict(input_sample)
こんにちは、返信いただきありがとうございます。シーケンスではないので、LSTMを使用することはできません。私はCNNについても考えましたが、重みを共有するため、重み(SxE)行列を学習しません。再形成の可能性は、反対であるため、どちらのニューロンにもすべての重みが同時に適用されるため、どちらも機能しません。 – Miguel
別の提案で編集:) –
あなたはそれを探していますか? –