谁可以给我一些通知当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