qui peut me donner un avis en cas de cette erreur? J'utilise VGG16-net pour faire face à la recongnition.AssertionError lorsque j'utilise la bibliothèque Keras d'apprentissage en profondeur
ERREUR (theano.gof.opt): échec d'optimisation en raison de:
LocalOptGroup (local_abstractconv_gemm, local_abstractconv_gradinputs_gemm, local_abstractconv_gradweight_gemm, local_conv2d_cpu, local_conv2d_gradinputs_cpu, local_conv2d_gradweight_cpu)
ERREUR (theano.gof.opt) : node: AbstractConv2d {border_mode = 'valide', sous-échantillon = (1, 1), filtre_flip = Vrai, imshp = (Aucun, Aucun, Aucun, Aucun), kshp = (512, 512, 3, 3)} (IncSubtensor {Set; ::, ::, int64: int64 :, int64: int64:}. 0, convolution2d_26_W) ERREUR (theano .gof.opt):
TRACEBACK: ERREUR (theano.gof.opt): Traceback (appel le plus récent en dernier): Fichier « D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py ", ligne 1772, dans process_node remplacements = lopt.transform (noeud) Fichier" D: \ Anaconda2 \ lib \ paquets-de-site \ theano \ gof \ opt.py ", ligne 1223, dans transformer repl = opt. transform (node) Fichier "D: \ Anaconda2 \ lib \ site-packages \ theano \ tensor \ nnet \ opt.py", ligne 153, dans local_conv2d_cpu sous-exemple = noeud.op.subsample) Fichier "D: \ Anaconda2 \ lib \ package-site \ theano \ tensor \ nnet \ conv.py ", ligne 132, dans conv2d assert image_shape [1] == filter_shape [1] AssertionError
image [Aucun, Aucun, Aucun, Aucun] filtres [512, 512, 3, 3] Traceback (le plus récent appel dernier):
fichier "", ligne 1, dans runfile ('E :/apprentissage en profondeur/vgg.py », WDIR = 'E:/apprentissage en profondeur')
fichier "D: \ Anaconda2 \ lib \ site-packages \ spyderlib \ widgets \ externalshell \ sitecustomize.py", ligne 699, dans runfile execfile (nom de fichier, espace de noms)
Fichier "D: \ Anaconda2 \ lib \ site-packages \ spyderlib \ widgets \ externalshell \ sitecustomize.py " ligne 74, dans execfile exec (compilation (scripttext, nom de fichier, 'exec'), glob, loc)
fichier" E:/apprentissage en profondeur/vgg.py », la ligne 110, en model.fit (données, étiquette, batch_size = 100, nb_epoch = 10, = True aléatoire, verbeux = 1, show_accuracy = True, validation_split = 0,2)
fichier "D: \ Anaconda2 \ lib \ site-packages \ keras \ models.py", ligne 402, dans forme sample_weight = sample_weight)
fichier « D: \ Anaconda2 \ lib \ site-packages \ keras \ moteur \ training.py ", ligne 999, en forme self._make_test_function()
Fichier "D: \ Anaconda2 \ lib \ site-packages \ keras \ moteur \ training.py", ligne 666, dans _make_test_function self._function_kwargs **)
Fichier "D: \ Anaconda2 \ lib \ site-packages \ keras \ backend \ theano_backend.PY "ligne 503, en fonction retour Fonction (entrées, sorties, mises à jour = mises à jour, ** kwargs)
fichier " D: \ Anaconda2 \ lib \ site-packages \ keras \ backend \ theano_backend.py », ligne 489, dans kwargs initialisation **)
de fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ compilent \ function.py", ligne 320, en fonction output_keys = output_keys)
Fichier "D: \ Anaconda2 \ lib \ site-packages \ theano \ comp ile \ pfunc.py », ligne 479, dans pfunc output_keys = output_keys)
Fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ compilation \ function_module.py", ligne 1776, en orig_function output_keys = output_keys) .Create (
fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ compilation \ function_module.py", ligne 1456, dans initialisation optimizer_profile = optimiseur (fgraph
Fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py", ligne 101, dans appel self.optimize retour (fgraph)
Fichier « D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py "ligne 89, dans optimize ret = self.apply (fgraph, * args, ** kwargs)
fichier" D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py "ligne 230, en appliquer sub_prof = optimizer.optimize (fgraph)
fichier" D: \ Anaconda2 \ lib \ site Packa gements \ Théano \ GOF \ opt.py "ligne 89, dans optimize ret = self.apply (fgraph, * args, ** kwargs)
Fichier" D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py "la ligne 2196, en appliquer lopt_change = self.process_node (fgraph, noeud, lopt)
fichier" D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt .py », ligne 1777, dans process_node lopt, noeud)
fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py", ligne 1673, dans warn_inplace retour NavigatorOptimizer.warn (exc, navigation, repl_pairs, local_opt, noeud)
Fichier "D: \ Anaconda2 \ lib \ site-packages \ Théano \ GOF \ opt.py", ligne 1659, en garde raise exc
AssertionError
c'est mon code
def VGG_16(weights_path=None):
model = Sequential()
model.add(ZeroPadding2D((1,1),input_shape=(3,64,64)))
model.add(Convolution2D(64, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(64, 3, 3, activation='relu'))
model.add(MaxPooling2D((2,2), strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(128, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(128, 3, 3, activation='relu'))
model.add(MaxPooling2D((2,2), strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(256, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(256, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(256, 3, 3, activation='relu'))
model.add(MaxPooling2D((2,2), strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(MaxPooling2D((2,2), strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(512, 3, 3, activation='relu'))
model.add(MaxPooling2D((2,2), strides=(2,2)))
return model
if weights_path:
import h5py
f = h5py.File(weights_path)
for k in range(f.attrs['nb_layers']):
if k >= len(model.layers):
# we don't look at the last (fully-connected) layers in the savefile
break
g = f['layer_{}'.format(k)]
weights = [g['param_{}'.format(p)] for p in range(g.attrs['nb_params'])]
model.layers[k].set_weights(weights)
f.close()
print('Model loaded.')
if __name__ == "__main__":
train_data = np.empty((5800,3,64,64),dtype='float32')
train_label = np.empty((5800,),dtype="uint8")
data,label = load_data(r'E:\test\face_64_64\target\train.csv',train_data,train_label)
# Test pretrained model
label = np_utils.to_categorical(label,58)
model = VGG_16()
model.add(Flatten())
model.add(Dense(4096, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4096, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(58, activation='softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(optimizer=sgd, loss='categorical_crossentropy',class_mode="categorical")
model.fit(data,label,batch_size=100,nb_epoch=10,shuffle=True,verbose=1,show_accuracy=True,validation_split=0.2)
Quelque chose semble mal avec la forme de votre données: 'dans conv2d assert image_shape [1] == filter_shape [1] AssertionError image [None, None, None, None ] filtres [512, 512, 3, 3] ' –
ma forme de données est (3,64,64) vous signifie qu'il ne correspond pas à mon réseau? – sky