J'ai une entrée 2D (ou 3D si l'on considère le nombre d'échantillons) et je veux appliquer une couche keras qui prendrait cette entrée et sortirait une autre matrice 2D. Ainsi, par exemple, si j'ai une entrée avec une taille (ExV), la matrice de poids d'apprentissage serait (SxE) et la sortie (SxV). Est-ce que je peux faire ceci avec la couche Dense? (Demande Nassim)Keras Custom Layer entrée 2D -> sortie 2D
EDIT:
La première couche ne fait rien. C'est juste pour donner une entrée à la couche Lambda:
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)
Salut, merci pour la réponse. N'est pas une séquence, et ne peut donc pas utiliser LSTM. J'ai aussi pensé à CNN, mais ensuite il n'apprend pas de matrice de poids (SxE), car il partagera les poids. La possibilité de remodeler ne fonctionne pas non plus, car c'est le contraire, c'est-à-dire que tous les poids seront appliqués simultanément pour chaque neurone. – Miguel
Édité avec une autre proposition :) –
Est-ce que c'est ce que vous cherchiez? –