Сохранение модели Tensorflow-Keras на GoogleDrive

Проект создается в блокноте GoogleColab для того, чтобы его было легко передавать на разные машины. Нейросетевая модель построена на фреймворке Tensorflow 2.0 по принципу Sub-Classing API, когда обучение, визуализации, инициализации завернуты в класс. Эту архитектуру менять нельзя. Среди методов этого класса есть метод сохранения модели. Нужно, чтобы он сохранял модель на мой гугл-диск.

Класс модели:

class Model(tf.keras.Model): # Попробуем за основу решения взять Tensorflow Keras

    def __init__(self):
        super(Model, self).__init__()

        self.conv1 = tf.keras.layers.Conv2D(32, 3, strides=2, activation="relu")
        self.max1  = tf.keras.layers.MaxPooling2D(3)
        self.bn1   = tf.keras.layers.BatchNormalization()
        self.conv2 = tf.keras.layers.Conv2D(64, 3, activation="relu")
        self.bn2   = tf.keras.layers.BatchNormalization()
        self.drop  = tf.keras.layers.Dropout(0.3)
        self.gap   = tf.keras.layers.GlobalAveragePooling2D()
        self.dense = tf.keras.layers.Dense(9, activation='softmax')
        


    def call(self, input_tensor, training=False):
        x = self.conv1(input_tensor)
        x = self.max1(x)
        x = self.bn1(x)
        x = self.conv2(x)
        x = self.bn2(x)
        x = self.drop(x)
        x = self.gap(x)
        return self.dense(x)
    
    #Множество других методов


    def save(self, name: str):
        self.save(f'/content/drive/MyDrive/{name}/MyModel')
        print('model saved')

При вызове получается ошибка рекурси:

model.train(d_train)
model.save('best')

RecursionError: maximum recursion depth exceeded


Ответы (0 шт):