У меня есть видеопоследовательность, кадры которой я пытаюсь предсказать.Вот как выглядит моя модель:
vision_model = Sequential()
vision_model.add(Conv2D(8, (3, 3), activation='sigmoid', padding='same', input_shape=(128, 64, 1)))
vision_model.add(MaxPooling2D((2, 2)))
vision_model.add(Flatten())
input_frames=Input(shape=(None,128,64,1))
x=TimeDistributed(vision_model)(input_frames)
x=LSTM(32,activation="sigmoid")(x)
x=RepeatVector(10)(x)
x_l=LSTM(32,return_sequences=True,activation="sigmoid")(x)
x=TimeDistributed(Dense(128*64,activation="sigmoid"),name="main_output")(x_l)
model=Model(inputs=input_frames,outputs=x)
model.compile(loss={"main_output": "binary_crossentropy"}, optimizer='adam',metrics=['accuracy'])
Вывод модели составляет 10 кадров, хотя и уплощен.Компилируется и работает нормально.Я хотел бы распечатать потерю каждого из этих 10 кадров.Один из способов, которым я думал об этом, заключался в следующем:
out_frames=[]
lossdict={}
for i in range(10):
out_frames.append(Dense(128*64,activation="sigmoid"),name="main_output")(x_l)
lossdict["main_loss_"+str(i)]="binary_crossentropy"
Проблема сейчас в том, что плотный выход все еще (None, 10,8192), за исключением 10 раз, что явно неверно.