VQA_Demo icon indicating copy to clipboard operation
VQA_Demo copied to clipboard

image_features[0,:] = get_image_model(CNN_weights_file_name).predict(im)[0] ValueError: could not broadcast input array from shape (1000) into shape (4096)

Open yashkark opened this issue 6 years ago • 8 comments

yashkark avatar Dec 01 '18 16:12 yashkark

keras version 2.2.4 tensorflow version 1.12.0

yashkark avatar Dec 01 '18 16:12 yashkark

Downgrade your keras version to 2.0, it will work.

Archan2607 avatar Jan 03 '19 06:01 Archan2607

The new error arises by downgrading the keras version. @iamaaditya Is there any other way out for this problem ?

AmrataRamchandani avatar Apr 15 '19 15:04 AmrataRamchandani

You need to remove the top layers of the pre-trained VGG and keep the Dense layer of 4096 as your output

akyso168 avatar Apr 28 '19 11:04 akyso168

@yashkark @AmrataRamchandani Hello, I have the same problem. Have you solved the problem? Can you share with us how to solve it? Thank you very much!

lzy119 avatar Jan 17 '21 13:01 lzy119

did any one find any working solution for this issue?

Dishank99 avatar Feb 11 '21 12:02 Dishank99

I have facing this issue can anyone help?

AttributeError Traceback (most recent call last) ~\RobotLab\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in setattr(self, name, value) 2260 try: -> 2261 super(tracking.AutoTrackable, self).setattr(name, value) 2262 except AttributeError:

AttributeError: can't set attribute

During handling of the above exception, another exception occurred:

AttributeError Traceback (most recent call last) in ----> 1 model_vgg = get_image_model(CNN_weights_file_name) 2 plot_model(model_vgg, to_file='model_vgg.png')

in get_image_model(CNN_weights_file_name) 3 with the weights. Requires the file VGG.py inside models/CNN ''' 4 from models.CNN.VGG import VGG_16 ----> 5 image_model = VGG_16(CNN_weights_file_name) 6 image_model.layers.pop() 7 image_model.layers.pop()

~\OneDrive\Documents\Process Studio Workspace\VQA_Demo-master\models\CNN\VGG.py in VGG_16(weights_path) 102 103 #Remove the last two layers to get the 4096D activations --> 104 model = pop(model) 105 model = pop(model) 106

~\OneDrive\Documents\Process Studio Workspace\VQA_Demo-master\models\CNN\VGG.py in pop(model) 22 model.outbound_nodes = [] 23 else: ---> 24 model.layers[-1].outbound_nodes = [] 25 model.outputs = [model.layers[-1].output] 26 model.built = False

~\RobotLab\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in setattr(self, name, value) 2264 ('Can't set the attribute "{}", likely because it conflicts with ' 2265 'an existing read-only @property of the object. Please choose a ' -> 2266 'different name.').format(name)) 2267 return 2268

AttributeError: Can't set the attribute "outbound_nodes", likely because it conflicts with an existing read-only @property of the object. Please choose a different name.

Shahidkhan990 avatar Mar 18 '21 05:03 Shahidkhan990

Finally, I overcame this issue. It's a package version problem. Use python==3.5, tensorflow==1.2.0, keras==2.0.6, scikit-learn==0.18.1, spacy==2.0.2, opencv-python==3.2.0.7 and it will work. I have uploaded my anaconda env at https://drive.google.com/file/d/1-9QUB7ho3jzXmFN2eM-6K4O5uvkGAOGZ/view?usp=sharing.

svical avatar Nov 21 '22 02:11 svical