1

J'ai le modèle suivant dans Keras et TimeDistributed (Aplatir()) (x) ne fonctionne pas, il donne la même forme que la sortie. J'utilise la dernière version de Keras avec le backend Tensorflow et Python 3.5.3 sur Windows 10. Suis-je en train de faire quelque chose de mal? Y a-t-il une solution alternative?TimeDistributed (Aplatir()) donne la même forme de sortie dans Keras

rnn_size = 128 

input_tensor = Input((width, height, 3)) 

x = input_tensor 

x = Convolution2D(32, 3, 3, activation='relu', input_shape=[width, height, 3])(x) 
x = Convolution2D(32, 3, 3, activation='relu')(x) 
x = MaxPooling2D(pool_size=(2, 2))(x) 

x = Convolution2D(32, 3, 3, activation='relu')(x) 
x = Convolution2D(32, 3, 3, activation='relu')(x) 
x = MaxPooling2D(pool_size=(2, 2))(x) 

x = Convolution2D(32, 3, 3, activation='relu')(x) 
x = Convolution2D(32, 3, 3, activation='relu')(x) 
x = MaxPooling2D(pool_size=(2, 2))(x) 

conv_shape = x.get_shape() 
x = Reshape(target_shape = (int(conv_shape [1]), int(conv_shape[2] * conv_shape[3])))(x) 

x = Dense(32, activation='relu')(x) 

x = GRU(rnn_size, return_sequences=True, init='he_normal', name='gru1')(x) 

x = TimeDistributed(Flatten())(x) 
x = TimeDistributed(Dropout(0.25))(x) 
x = TimeDistributed(Dense(n_class, init='he_normal', activation='softmax'))(x) 

model = Model(input = [input_tensor], output = [x]) 

model.compile(loss='categorical_crossentropy', optimizer='adadelta') 

Répondre

0

La dernière distribution de keras a ce travail pour moi (Ubuntu 16.04). Si la distribution pour Win10 ne le fait pas, mettez à niveau keras vers la version github.