Сохранение модели 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