誰可以給我一些通知當casue這個錯誤?我使用VGG16-net做臉部識別。AssertionError當我使用深度學習庫Keras
ERROR(theano.gof.opt):優化衰竭:
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) :節點:AbstractConv2d {border_mode ='valid', subsample =(1,1),filter_flip = True,imshp =(None,None,None,None), kshp =(512,512,3,3)}( IncSubtensor {Set; ::,::,int64:int64 :, int64:int64:} 0,convolution2d_26_W)ERROR(theano .gof.opt):
TRACEBACK:ERROR(theano.gof.opt):Traceback(最近呼叫的最後一個): 文件「D:\ Anaconda2 \ lib \ site-packages \ theano \ gof \ opt.py 「,第1772行,在 process_node replacements = lopt.transform(node)文件」D:\ Anaconda2 \ lib \ site-packages \ theano \ gof \ opt.py「,第1223行,在 變換 repl = opt。轉換(節點)文件「D:\ Anaconda2 \ lib \ site-packages \ theano \ tensor \ nnet \ opt.py」,第153行, in local_conv2d_cpu subsample = node.op.subsample)文件「D:\ Anaconda2 \ lib \ site-packages \ theano \ tensor \ nnet \ conv.py「,第132行, in conv2d assert image_shape [1] == filter_shape [1] AssertionError
圖像[無,無,無,無]過濾器[512,512,3,3]回溯 (最新最後調用):
文件 「」,第1行,在 RUNFILE('E :/深度學習/ vgg.py」,WDIR = 'E:/深度學習')
文件 「d:\ Anaconda2 \ LIB \站點包\ spyderlib \部件\ externalshell \ sitecustomize.py」, 第699行,運行文件 execfile(文件名,命名空間)
文件 「D:\ Anaconda2 \ LIB \站點包\ spyderlib \部件\ externalshell \ sitecustomize.py 「 線74,在的execfile EXEC(編譯(scripttext,文件名, 'EXEC'),水珠,LOC)
文件」 E:/深度學習/ vgg.py」,線110,在 model.fit(數據,標籤,的batch_size = 100,nb_epoch = 10,隨機播放=真,冗長= 1,show_accuracy =真,validation_split = 0.2)
文件「d:\ Anaconda2 \ lib中\站點包\ keras \ models.py」,線路402,在 配合 sample_weight = sample_weight)
文件「d:\ Anaconda2 \ lib中\站點包\ keras \發動機\ training.py「,行 999,在配合 self._make_test_function()
文件 「d:\ Anaconda2 \ LIB \站點包\ keras \發動機\ training.py」,行 666,在_make_test_function ** self._function_kwargs)
文件 「D:\ Anaconda2 \ lib \ site-packages \ keras \ backend \ theano_backend。PY 「線路503 ,在函數返回 功能(輸入,輸出,更新=更新,** kwargs)
文件 」 d:\ Anaconda2 \ lib中\站點包\ keras \後端\ theano_backend.py 」線 489,在初始化 ** kwargs)
文件 「d:\ Anaconda2 \ lib中\站點包\ theano \編譯\ function.py」, 線320,在功能上 output_keys = output_keys)
文件「D:\ Anaconda2 \ lib \ site-packages \ theano \ comp」 ILE \ pfunc.py」,行 479,在pfunc output_keys = output_keys)
文件 「d:\ Anaconda2 \ LIB \站點包\ theano \編譯\ function_module.py」, 線1776,在orig_function output_keys = output_keys).create(
文件 「d:\ Anaconda2 \ lib中\站點包\ theano \編譯\ function_module.py」, 線1456,在INIT optimizer_profile =優化器(fgraph )
文件 「d:\ Anaconda2 \ LIB \站點包\ theano \ GOF \ opt.py」,線路101, 在通話 回報self.optimize(fgraph)
文件「d:\ Anaconda2 \ LIB \站點包\ theano \ GOF \ opt.py 「線路89,在 優化 RET = self.apply(fgraph,*指定參數時,** kwargs)
文件」 d:\ Anaconda2 \ lib中\站點包\ theano \ GOF \ opt.py 「線路230,在 申請 sub_prof = optimizer.optimize(fgraph)
文件」 d:\ Anaconda2 \ lib中\站點帕茨卡GES \ theano \ GOF \ opt.py 「線路89,在 優化 RET = self.apply(fgraph,*指定參數時,** kwargs)
文件」 d:\ Anaconda2 \ lib中\站點包\ theano \ GOF \ opt.py 「線2196, 在申請 lopt_change = self.process_node(fgraph,節點,LOPT)
文件」 d:\ Anaconda2 \ LIB \站點包\ theano \ GOF \選擇py」爲,線1777, 在process_node LOPT,節點)
文件 「d:\ Anaconda2 \ LIB \站點包\ theano \ GOF \ opt.py」,線1673, 在warn_inplace 返回NavigatorOptimizer.warn(EXC,導航,repl_pairs,local_opt,節點)
文件 「d:\ Anaconda2 \ LIB \站點包\ theano \ GOF \ opt.py」,線1659, 在警告 加薪EXC
Asse田
這是我的代碼
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)
有什麼不對勁與您的數據形狀:'在conv2d斷言image_shape [1] == filter_shape [1] Asse田 圖像[無,無,無,無]過濾器[512,512,3,3]' –
我的數據形狀是(3,64,64)你的意思是它不符合我的網? – sky