Изменение выходного слоя предварительно обученной модели в тензорном потокеPython

Программы на 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) несовместимы. Почему я получаю это сообщение и как это исправить. Хотя я явно не удалял выходной слой старой_модели, новая_модель не должна знать о прежнем выходном слое, верно?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»