'Value error in using get_weights() for xception
I am trying to access the filters and biases using get_weights() for Xception network. It's showing value error- ValueError: not enough values to unpack (expected 2, got 1).
The code I am using -
model = Xception()
model.summary()
#filters, biases = model.layers[10].get_weights()
#print(model.layers[10].name, filters.shape)
for layer in model.layers:
if 'conv' not in layer.name:
continue
# to get filter weights
filters, biases = layer.get_weights()
print(layer.name, filters.shape)
The error, I got -
Traceback (most recent call last):
File "weights_biases.py", line 32, in <module>
filters, biases = layer.get_weights()
ValueError: not enough values to unpack (expected 2, got 1)
It is working for VGG16 but not for Xception. I am new to this area. Please let me know how to fix this.
Solution 1:[1]
You can implement an exception call using a try-except block to make your code work with any network,ResNet,VGG16 etc as shown below
try:
filters,biases = layer.get_weights()
break
except ValueError:
filters = layer.get_weights()
Updating your code:
model = Xception()
model.summary()
#filters, biases = model.layers[10].get_weights()
#print(model.layers[10].name, filters.shape)
for layer in model.layers:
if 'conv' not in layer.name:
continue
# to get filter weights
try:
filters,biases = layer.get_weights()
break
except ValueError:
filters = layer.get_weights()
print(layer.name, filters.shape)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | izbid |
