Issue with the set_weights in qml.qnn keras quantum layer

Hi @Amandeep,

This can be fixed by doing a forward pass through the model before printing the summary, e.g:

from sklearn.datasets import make_moons

import pennylane as qml

import tensorflow as tf

X_train, y = make_moons(n_samples=200, noise=0.1)

n_qubits = 2

num_layers = 1

dev = qml.device('default.qubit', wires = n_qubits)

@qml.qnode(dev, interface='tf', diff_method='backprop')

def circuit(inputs, weights):

    qml.templates.AngleEmbedding(inputs, wires=range(n_qubits))

    qml.templates.BasicEntanglerLayers(weights, wires=range(n_qubits))

    return [qml.expval(qml.PauliZ(wires=i)) for i in range(n_qubits)]

shape = X_train.shape[1]

n_qubits = 2

num_layers = 1

weight_shapes = {"weights": (num_layers,n_qubits)}

tf.keras.backend.set_floatx('float64')

clayer1 = tf.keras.layers.Dense(2, input_shape=(shape,))

qlayer = qml.qnn.KerasLayer(circuit, weight_shapes, output_dim=n_qubits)

clayer2 = tf.keras.layers.Dense(2, activation='softmax',)

model = tf.keras.models.Sequential([clayer1, qlayer, clayer2])

# Add a forward pass before printing summary

model.add(clayer1)

model.add(qlayer)

model.add(clayer2)

model(X_train[:2])

model.summary()

I hope this helps!