Вот прогресс srgan, я просто исследую его дискриминатор.Как вы знаете, это модель классификации.Причина в том, что я пытаюсь напечатать структуру этой модели, но ошибаюсь.Плотный слой (d9) выглядит неправильно, мне нужна ваша помощь.Вы можете запустить этот сценарий, используя keras.
from keras.datasets import mnist
from keras.layers import Input, Dense, Reshape, Flatten, Dropout, Concatenate
from keras.layers import BatchNormalization, Activation, ZeroPadding2D, Add
from keras.layers.advanced_activations import PReLU, LeakyReLU
from keras.layers.convolutional import UpSampling2D, Conv2D
from keras.applications import VGG19
from keras.models import Sequential, Model
from keras.optimizers import Adam
import numpy as np
def d_block(layer_input, filters, strides=1, bn=True):
"""Discriminator layer"""
d = Conv2D(filters, kernel_size=3, strides=strides, padding='same')(layer_input)
d = LeakyReLU(alpha=0.2)(d)
if bn:
BatchNormalization(momentum=0.8)(d)
return d
def discriminator(df,hr_shape):
# Input img
d0 = Input(shape=hr_shape)
print(d0)
d1 = d_block(d0, df, bn=False)
print(d1)
d2 = d_block(d1, df, strides=2)
print(d2)
d3 = d_block(d2, df*2)
print(d3)
d4 = d_block(d3, df*2, strides=2)
print(d4)
d5 = d_block(d4, df*4)
print(d5)
d6 = d_block(d5, df*4, strides=2)
d7 = d_block(d6, df*8)
d8 = d_block(d7, df*8, strides=2)
print(d8)
d9 = Dense(output_dim=df*16)(d8)
print(d9)
d10 = LeakyReLU(alpha=0.2)(d9)
print(d10)
validity = Dense(1, activation='sigmoid')(d10)
#return Model(d0, validity)
def main():
discriminator(64,(3,64*4,64*4))
if __name__=="__main__":
main()
Неправильное сообщение:
ValueError: Размеры должны быть равны, но равны 512 и 1024 для 'density_6 / BiasAdd'(op: 'BiasAdd') с входными формами: [?, 512,16,1024], [1024].D9 не правильно
. Я надеюсь, вы можете показать мне, почему это неправильно.Фактически, это происходит из проекта GitHub