Несоответствие количества слоев при загрузке весов из файла. Модель ожидала 106 слоев, найдено 4 сохраненных слоя.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Несоответствие количества слоев при загрузке весов из файла. Модель ожидала 106 слоев, найдено 4 сохраненных слоя.

Сообщение Anonymous »

У меня есть эта сеть (из бумаги simclr): < /p>

Код: Выделить всё

base_model = tf.keras.applications.ResNet50(include_top=False, weights=None, input_shape=(224, 224, 3))
base_model.trainable = True
#inputs = Input((224, 224, 3))
inputs = Input((224, 224, 3))
h = base_model(inputs, training=True)
h = GlobalAveragePooling2D()(h)

projection_1 = Dense(256)(h)
projection_1 = Activation("relu")(projection_1)
projection_2 = Dense(128)(projection_1)
projection_2 = Activation("relu")(projection_2)
projection_3 = Dense(50)(projection_2)

resnet_simclr = Model(inputs, projection_3)
После обучения модели я сохранил ее:

Код: Выделить всё

resnet_simclr.save_weights(filename)
Однако после попытки загрузить вес в ResNet50 вот так:

Код: Выделить всё

inputs = tf.keras.layers.Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3), name="input_image")
Resmodel  = tf.keras.applications.ResNet50(input_tensor=inputs, weights=weights_path, include_top=False)
< /code>
Я получил эту ошибку: < /p>
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
 in ()
3 from keras.utils.vis_utils import plot_model
4 inputs = tf.keras.layers.Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3), name="input_image")
----> 5 Resmodel  = tf.keras.applications.ResNet50(input_tensor=inputs, weights=weights_path, include_top=False) # weights="imagenet"
6 #Resmodel.load_weights(weights_path)
7 Resmodel.summary()

3 frames
/usr/local/lib/python3.7/dist-packages/keras/saving/hdf5_format.py in load_weights_from_hdf5_group(f, model)
718   if len(layer_names) != len(filtered_layers):
719     raise ValueError(
--> 720         f'Layer count mismatch when loading weights from file. '
721         f'Model expected {len(filtered_layers)} layers, found '
722         f'{len(layer_names)} saved layers.')

ValueError: Layer count mismatch when loading weights from file. Model expected 106 layers, found 4 saved layers.
РЕДАКТИРОВАТЬ
Проблема, которую я пытаюсь решить при передаче обучения (нисходящий поток ) от RestNet50 с также тремя проекционными слоями до RestNet50 (часть магистральной сети Unet), но у этого Rasnet нет головы проекта, как у обученной модели. Я не знаю, как это исправить.

Подробнее здесь: https://stackoverflow.com/questions/709 ... 106-layers
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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