Изменение выходного слоя предварительно обученной модели в тензорном потоке ⇐ Python
Изменение выходного слоя предварительно обученной модели в тензорном потоке
У меня есть предварительно обученная модель, и я хочу изменить только выходной слой на новый с большим количеством единиц. В этом случае старый выходной слой имел 18 единиц, а новый — 20. Моя текущая реализация выглядит так:
старая_модель = load_model(путь_файла_модели) helper_model = Модель(входные данные=old_model.inputs, выходные данные=old_model.layers[-2].выход) new_output = Dense(units = old_model.layers[-1].units + приращение, активация='softmax', Activity_regularizer=l1_l2(l1l2[0], l1l2[1]))(helper_model.output) новая_модель = Модель (входные данные = helper_model.input, выходные данные = новый_выход) Если я распечатаю new_model.summary() и посмотрю на последний слой, все будет нормально:
плотность (Плотность) (Нет, 20) 2580 ['dropout[0][0]'] =============================================== =================================== Однако, когда я пытаюсь обучить new_model, я получаю следующую ошибку:
ValueError: фигуры (Нет, 18) и (Нет, 20) несовместимы. Почему я получаю это сообщение и как это исправить. Хотя я явно не удалял выходной слой старой_модели, новая_модель не должна знать о прежнем выходном слое, верно?
У меня есть предварительно обученная модель, и я хочу изменить только выходной слой на новый с большим количеством единиц. В этом случае старый выходной слой имел 18 единиц, а новый — 20. Моя текущая реализация выглядит так:
старая_модель = load_model(путь_файла_модели) helper_model = Модель(входные данные=old_model.inputs, выходные данные=old_model.layers[-2].выход) new_output = Dense(units = old_model.layers[-1].units + приращение, активация='softmax', Activity_regularizer=l1_l2(l1l2[0], l1l2[1]))(helper_model.output) новая_модель = Модель (входные данные = helper_model.input, выходные данные = новый_выход) Если я распечатаю new_model.summary() и посмотрю на последний слой, все будет нормально:
плотность (Плотность) (Нет, 20) 2580 ['dropout[0][0]'] =============================================== =================================== Однако, когда я пытаюсь обучить new_model, я получаю следующую ошибку:
ValueError: фигуры (Нет, 18) и (Нет, 20) несовместимы. Почему я получаю это сообщение и как это исправить. Хотя я явно не удалял выходной слой старой_модели, новая_модель не должна знать о прежнем выходном слое, верно?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Получение синтаксической ошибки при создании входного слоя для NN в тензорном потоке
Anonymous » » в форуме Python - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Разработка предварительной модели в тензорном потоке для классификации изображений
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-