Как загрузить веса параллельной модели, обученные с multi_gpu_model, в одну модель GPU для вывода? - PullRequest
0 голосов
/ 15 июня 2019

Я обучил модель с помощью утилиты multi_gpu_model и использовал обычный обратный вызов для проверки и сохранения весов модели.Эта модель была обучена на 4 GPU.

Теперь для вывода я хочу использовать только один GPU (приведенный ниже код предназначен для одного GPU, отличается от обучения, где использовалась утилита multi_gpu_model), но когда я пытаюсьзагрузить веса, это дает ошибку.

input_seq = Input(shape=(40,32,16,1))  

a = ConvLSTM2D(256, (3, 3), activation='sigmoid', padding='same', return_sequences=True)(input_seq)
a = ConvLSTM2D(256, (3, 3), activation='sigmoid', padding='same', return_sequences=True)(a)
a = MaxPooling3D((2,2,2), padding='same')(a)
a = ConvLSTM2D(256, (3, 3), activation='sigmoid', padding='same', return_sequences=True)(a)
a = ConvLSTM2D(256, (3, 3), activation='sigmoid', padding='same', return_sequences=False)(a)
a = UpSampling3D((2, 2,2))(a)
for i in range(10):
    out_frames.append(Conv2D(filters=1, kernel_size=(3, 3), activation='sigmoid',padding='same')(a))  

model = Model(input_seq, out_frames)
model.compile(loss="binary_crossentropy", optimizer="adam")

weight_file="model_weights.hdf5"

Но выдает исключение следующим образом:

ValueError: You are trying to load a weight file containing 1 layers into a model with 14 layers.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...