yu4u / age-gender-estimation

Keras implementation of a CNN network for age and gender estimation
MIT License
1.46k stars 502 forks source link

Variable shape and weights shape are not matching #140

Open christer1114 opened 3 years ago

christer1114 commented 3 years ago

Hi,

I am trying to run the codes for Age detection using jupyter notebook but I an getting errors when I try to load the weights. When the code below is used,

base_model = ResNet50(include_top=False, weights='imagenet', input_shape=(224, 224, 3), pooling="avg") prediction = Dense(units=101, kernel_initializer="he_normal", use_bias=False, activation="softmax", name="pred_age")(base_model.output) model = Model(inputs=base_model.input, outputs=prediction)

it yields,

ValueError: Cannot assign to variable conv3_block1_0_conv/kernel:0 due to variable shape (1, 1, 256, 512) and value shape (512, 128, 1, 1) are incompatible

Please help.

gadididi commented 3 years ago

Hi,

I am trying to run the codes for Age detection using jupyter notebook but I an getting errors when I try to load the weights. When the code below is used,

base_model = ResNet50(include_top=False, weights='imagenet', input_shape=(224, 224, 3), pooling="avg") prediction = Dense(units=101, kernel_initializer="he_normal", use_bias=False, activation="softmax", name="pred_age")(base_model.output) model = Model(inputs=base_model.input, outputs=prediction)

it yields,

ValueError: Cannot assign to variable conv3_block1_0_conv/kernel:0 due to variable shape (1, 1, 256, 512) and value shape (512, 128, 1, 1) are incompatible

Please help.

HI @christer1114
did you found solution for this problem?

oballinger commented 3 years ago

is it crucial you run it from jupyter/IDE? demo.py works fine from the command line

sushidelivery commented 3 years ago

same problem

RTnhN commented 3 years ago

This is pretty old, but maybe it will help others.

I had this problem too. I found this stack overflow answer that helped me. You just need to add by_name=True in the model.load_weights(weight_file) method call. It should be model.load_weights(weight_file,by_name=True). It worked for me, so it might work for you too.

sushidelivery commented 3 years ago

This is pretty old, but maybe it will help others.

I had this problem too. I found this stack overflow answer that helped me. You just need to add by_name=True in the model.load_weights(weight_file) method call. It should be model.load_weights(weight_file,by_name=True). It worked for me, so it might work for you too.

thank you! I will try & check it!