The issue is that model_copy is probably not compiled after cloning. There are in fact a few issues:

Apparently cloning doesn’t copy over the loss function, optimizer info, etc.

Before compiling you need to also build the model.

Moreover, cloning doesn’t copy weight over

So you need a couple extra lines after cloning. For example, for 10 input variables:

```
model_copy= keras.models.clone_model(model1)
model_copy.build((None, 10)) # replace 10 with number of variables in input layer
model_copy.compile(optimizer="rmsprop", loss="categorical_crossentropy")
model_copy.set_weights(model.get_weights())
```

## Easier Method 1: Loading weights from file

If I understand your question correctly, there is an easier way to do this. You don’t need to clone the model, just need to save the old_weights and set the weights at beginning of the loop. You can simply load weights from file as you are doing.

```
for _ in range(10):
model1= create_Model()
model1.compile(optimizer="rmsprop", loss="categorical_crossentropy")
model1.load_weights('my_weights')
for j in range(0, image_size):
model1.fit(sample[j], sample_lbl[j])
prediction= model1.predict(sample[j])
```

## Easier Method 2: Loading weights from previous get_weights()

Or if you prefer not to load from file:

```
model1= create_Model()
model1.compile(optimizer="rmsprop", loss="categorical_crossentropy")
model1.load_weights('my_weights')
old_weights = model1.get_weights()
for _ in range(10):
model1.set_weights(old_weights)
for j in range(0, image_size):
model1.fit(sample[j], sample_lbl[j])
prediction= model1.predict(sample[j])
```