J'essaie de comprendre les CNN grâce à des exercices dans Keras (backend de theano). Je ne peux pas adapter le modèle ci-dessous (Erreur: AttributeError: l'objet 'Convolution2D' n'a pas d'attribut 'get_shape'). Cet ensemble de données est constitué d'images (28 * 28) issues des données MNIST concaténées ensemble pour un maximum de cinq images. La forme d'entrée doit donc être 1, 28, 140 (grayscale = 1, height = 28, width = 28 * 5)Keras pour la reconnaissance à plusieurs chiffres
Le but est de prédire la séquence des nombres. Je vous remercie!!
batch_size = 128
nb_classes = 10
nb_epoch = 2
img_rows =28
img_cols=140
img_channels = 1
model_input=(img_channels, img_rows, img_cols)
x = Convolution2D(32, 3, 3, border_mode='same')(model_input)
x = Activation('relu')(x)
x = Convolution2D(32, 3, 3)(x)
x = Activation('relu')(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Dropout(0.25)(x)
conv_out = Flatten()(x)
x1 = Dense(nb_classes, activation='softmax')(conv_out)
x2 = Dense(nb_classes, activation='softmax')(conv_out)
x3 = Dense(nb_classes, activation='softmax')(conv_out)
x4 = Dense(nb_classes, activation='softmax')(conv_out)
x5 = Dense(nb_classes, activation='softmax')(conv_out)
lst = [x1, x2, x3, x4, x5]
model = Sequential(input=model_input, output=lst)
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(dataset, data_labels, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1)
Merci pour votre réponse. J'obtiens toujours que l'objet tensoriel n'est pas itérable. –
Est l'erreur à 'model.fit()'. Si oui, ma supposition sera que 'data_labels' devrait être une liste de tableaux numpy de longueur 5. Chacun des tableaux numpy devrait de dimension' dataset.shape [0] x nb_classes' – indraforyou
Salut l'erreur est dans la couche d'activation. Voici un lien vers le code complet: https://gist.github.com/jdills26/ca69e59ef19d4993636f6b50a7cbe514 Merci pour toute aide! Voici la source de données: http://yann.lecun.com/exdb/mnist/index.html –