keras wont save weights ValueError: Unable to create group (name already exists)

Прикол в том, что использовалась модель с предобученными ветками VGG16. При использовании этих веток им автоматически назначаются имена, зашитые в описание этих моделей — ‘vgg16’. Поэтому в каждой ветке надо переименовать эти слои (по факту — целые сетки)
Кстати, да, — если отрисовать архитектуру модели, этого не увидеть, потому что там не пишутся имена групп. Там отрисовывается все в максимальной детализации до элементарных слоев.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import keras
from keras.applications import VGG16
from keras import models
from keras.models import Sequential, Model
from keras.layers import Flatten, concatenate, Concatenate, Merge
from keras.utils import plot_model
 
conv_base1 = VGG16(weights='imagenet', include_top=False, input_shape=(100, 100, 3))
conv_base2 = VGG16(weights='imagenet', include_top=False, input_shape=(100, 100, 3))
for l in conv_base1.layers:
    l.name = l.name+"_branch1"
for l in conv_base2.layers:
    l.name = l.name+"_branch2"
 
branch1 = Sequential()
branch1.add(conv_base1)
branch1.add(Flatten())
branch1.layers[0].name = branch1.layers[0].name + "_branch1"
 
branch2 = models.Sequential()
branch2.add(conv_base2)
branch2.add(Flatten())
branch2.layers[0].name = branch2.layers[0].name + "_branch2"
 
model = models.Sequential()
model.add(Merge([branch1, branch2], mode='concat'))
 
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))