Get weights in keras

when I'm trying to use get_weights to get weights of a layer of a CNN in keras it cause an error and said: 'Tensor' object has no attribute 'weights'. I saw the keras documentation and it said use the get_weights command in order to work with weights. so I don't know what is wrong with it. I also using keras 2.2.4

here is a part of my code:

input_layer = Input(shape=(32,32,3))
conv1 = Conv2D(32,(5,5), activation='relu', padding='same')(input_layer)
conv2 = Conv2D(32,(5,5), activation='relu', padding='same')(conv1)
maxpool1 = MaxPool2D(pool_size=2, padding='same')(conv2)
conv3 = Conv2D(32,(5,5), activation='relu', padding='same')(maxpool1)
conv4 = Conv2D(32,(5,5), activation='relu', padding='same')(conv3)
maxpool2 = MaxPool2D(pool_size=2, padding='same')(conv4)
conv5 = Conv2D(32,(5,5), activation='relu', padding='same')(maxpool2)
flatten1 = Flatten()(conv5)
dense1 = Dense(128, kernel_initializer='random_normal', bias_initializer='zeros')(flatten1)
dense2 = Dense(128,kernel_initializer='random_normal', bias_initializer='zeros')(dense1)
output_layer = Dense(10,activation='softmax',kernel_initializer='random_normal', bias_initializer='zeros')(dense2)
Cifar10_CNN = Model(input_layer, output_layer)

print(Cifar10_CNN.summary())

Cifar10_CNN.compile(optimizer=Adam(lr=0.0001), loss=categorical_crossentropy, metrics=['accuracy'])

conv1_weight_visualization = conv1.get_weights()
plt.imshow(conv1_weight_visualization)

Upvotes: 0

Views: 290

Answers (1)

Pranjal Sahu
Pranjal Sahu

Reputation: 1469

for layer in Cifar10_CNN.layers: 
   print(layer.name, np.array(layer.get_weights()))

You can obtain each layer weights like this.

Upvotes: 2

Related Questions