首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ValueError:层权重形状(3,3,3,64)与提供的权重形状(64,3,3,3)不兼容

ValueError:层权重形状(3,3,3,64)与提供的权重形状(64,3,3,3)不兼容
EN

Stack Overflow用户
提问于 2018-01-16 22:34:14
回答 1查看 7.9K关注 0票数 5

我试图根据图像和文本对产品进行分类,但遇到了错误

代码语言:javascript
运行
复制
 img_width, img_height = 224, 224
# build the VGG16 network
model = Sequential()
model.add(ZeroPadding2D((1, 1), input_shape=(img_width, img_height,3), name='image_input'))

model.add(Convolution2D(64, (3, 3), activation='relu', name='conv1_1'))
model.add(ZeroPadding2D((1, 1)))
model.add(Convolution2D(64, (3, 3), activation='relu', name='conv1_2'))
model.add(MaxPooling2D((2, 2), strides=(2, 2)))


# set trainable to false in all layers
for layer in model.layers:
    if hasattr(layer, 'trainable'):
        layer.trainable = False

return model

WEIGHTS_PATH='E:/'
weight_file = ''.join((WEIGHTS_PATH, '/vgg16_weights.h5'))
f = h5py.File(weight_file,mode='r')
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()
return model

load_weights_in_base_model(get_base_model())

错误:文件"C:\Python\lib\site-packages\keras\engine\topology.py",行1217,在set_weights中'provided weight shape‘+ str(w.shape)) ValueError:层权重形状(3,3,3,64)与提供的权重形状(64,3,3,3)不兼容

有谁能帮我解决这个错误吗?提前谢谢..

EN

回答 1

Stack Overflow用户

发布于 2018-01-16 23:52:54

问题似乎出在线路上。

代码语言:javascript
运行
复制
model.layers[k].set_weights(weights)

Keras对不同的后端进行不同的初始化权重。如果你使用theano作为后端,那么权重将被初始化为acc。到kernels_first,如果您使用tensorflow作为后端,那么权重将初始化为acc。敬kernels_last

因此,在您的案例中,问题似乎是您正在使用tensorflow,但正在从使用theano作为后端创建的文件中加载权重。解决方案是使用keras conv_utils重塑内核。

代码语言:javascript
运行
复制
from keras.utils.conv_utils import convert_kernel
reshaped_weights = convert_kernel(weights)
model.layers[k].set_weights(reshaped_weights)

有关更多信息,请查看this

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48283625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档