AssertionError quando eu usar a biblioteca aprendizagem profunda Keras

votos
3

quem pode me dar algum aviso quando casue esse erro? Estou usar VGG16-net para fazer cara recongnition.

ERROR (theano.gof.opt): falha de Otimização devido a:

LocalOptGroup (local_abstractconv_gemm, local_abstractconv_gradinputs_gemm, local_abstractconv_gradweight_gemm, local_conv2d_cpu, local_conv2d_gradinputs_cpu, local_conv2d_gradweight_cpu)

ERROR (theano.gof.opt): nó: AbstractConv2d {border_mode = 'válido', subamostra = (1, 1), filter_flip = True, imshp = (Nada, Nada, Nada, Nada), kshp = (512, 512, 3, 3)} (IncSubtensor {Set; ::, ::, int64:. int64 :, int64: int64:} 0, convolution2d_26_W) ERRO (theano.gof.opt):

TRACEBACK: ERROR (theano.gof.opt): Traceback (chamada mais recente passada): File D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 1772, em substituição process_node = LOPT. transformar (nó) arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 1223, em transformar repl = opt.transform (nó) arquivo D: \ Anaconda2 \ lib \ site- pacotes \ Theano \ tensor \ nnet \ opt.py, linha 153, em local_conv2d_cpu subamostra = node.op.subsample) arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ tensor \ nnet \ conv.py, a linha 132, em image_shape afirmar conv2d [1] == filter_shape [1] AssertionError

imagem [Nada, Nada, Nada, Nada] filtros [512, 512, 3, 3] Traceback (chamada mais recente passada):

Arquivo linha 1, em runfile ( 'E: / Deep Learning / vgg.py', WDIR = 'E: / aprendizagem profunda')

Arquivo D: \ Anaconda2 \ lib \ site-packages \ spyderlib \ Widgets \ externalshell \ sitecustomize.py, linha 699, em execfile runfile (filename, namespace)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ spyderlib \ Widgets \ externalshell \ sitecustomize.py, linha 74, em exec execfile (compilar (scripttext, filename, 'exec'), glob, loc)

Arquivo E: / Deep Learning / vgg.py, linha 110, em model.fit (dados, etiqueta, batch_size = 100, nb_epoch = 10, baralhamento = True, detalhado = 1, show_accuracy = True, validation_split = 0,2)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ keras \ models.py, linha 402, no ajuste sample_weight = sample_weight)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ keras \ engine \ training.py, linha 999, no ajuste self._make_test_function ()

Arquivo D: \ Anaconda2 \ lib \ site-packages \ keras \ engine \ training.py, linha 666, em _make_test_function ** self._function_kwargs)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ keras \ backend \ theano_backend.py, linha 503, em função de retorno de função (entradas, saídas, atualizações = atualizações, ** kwargs)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ keras \ backend \ theano_backend.py, linha 489, na inicialização kwargs **)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ compilar \ function.py, linha 320, em função output_keys = output_keys)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ compilar \ pfunc.py, linha 479, em pFunc output_keys = output_keys)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ compilar \ function_module.py, linha 1776, na .Create orig_function output_keys = output_keys) (

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ compilar \ function_module.py, linha 1456, na inicialização optimizer_profile = Optimizer (fgraph)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 101, em chamada self.optimize retorno (fgraph)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 89, em ret otimizar = self.apply (fgraph, * args, ** kwargs)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 230, em aplicar sub_prof = optimizer.optimize (fgraph)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 89, em ret otimizar = self.apply (fgraph, * args, ** kwargs)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 2196, em aplicar lopt_change = self.process_node (fgraph, nó, LOPT)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 1777, na LOPT process_node, nó)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 1673, em troca warn_inplace NavigatorOptimizer.warn (exc, nav, repl_pairs, local_opt, nó)

Arquivo D: \ Anaconda2 \ lib \ site-packages \ Theano \ gof \ opt.py, linha 1659, na avisar levantar exc

AssertionError

este é o meu código

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)
Publicado 21/04/2016 em 12:37
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Eu enfrentei o mesmo problema com keras / Theano. Erro foi resolvido por Theano atualização para a versão 0.8.2. Por favor verifique se a sua versão Theano> = 0.8.2 e tentar atualizar Theano para a versão 0.8.2, no caso oposto. Por exemplo, com o uso de pip instalar:

pip install theano==0.8.2

Respondeu 01/07/2016 em 13:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more