waveGAN in Keras - Размеры в сверточных сетевых слоях - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь переписать waveGAN с помощью Keras. (https://github.com/chrisdonahue/wavegan/) Вот что у меня есть:

Генератор:

def defineGen(Gin, d = 1, lr = 1e-3):

    shapes = [d*x for x in [256,16,8,4,2,1]]

    x = Dense(shapes[0])(Gin)
    x = Reshape((1,16,16))(x)
    x = Activation('relu')(x)

    x = Conv2DTranspose(25,(shapes[1],shapes[2]),padding='same')(x)
    x = Activation('relu')(x)

    x = Conv2DTranspose(25,(shapes[2],shapes[3]),padding='same')(x)
    x = Activation('relu')(x)

    x = Conv2DTranspose(25,(shapes[3],shapes[4]),padding='same')(x)
    x = Activation('relu')(x)

    x = Conv2DTranspose(25,(shapes[4],shapes[5]),padding='same')(x)
    x = Activation('relu')(x)

    x = Conv2DTranspose(25,(shapes[5],1),padding='same')(x)
    G_out = Activation('tanh')(x)

    G = Model(inputs=[Gin],outputs=G_out)
    optimizer = SGD(lr =lr)

    G.compile(loss = 'binary_crossentropy',optimizer=optimizer)

    return G, G_out

G_in1 = Input(shape=[None,100])
G, G_out = defineGen(G_in1)
G.summary()

Дискриминатор:

def defineDisc(Din, d = 1, lr = 1e-3):
    shapes = [d*x for x in [1,2,4,8,16]]

    x = Conv1D(25,kernel_size=(shapes[0]))(Din)
    x = LeakyReLU(alpha=0.1)(x)

    # phase shuffle - not implemented yet

    x = Conv1D(25,(shapes[1]),strides=4)(x)
    x = LeakyReLU(alpha=0.1)(x)

    # phase shuffle - not implemented yet

    x = Conv1D(25,(shapes[2]),strides=4)(x)
    x = LeakyReLU(alpha=0.1)(x)

    # phase shuffle - not implemented yet

    x = Conv1D(25,(shapes[3]),strides=4)(x)
    x = LeakyReLU(alpha=0.1)(x)

    # phase shuffle - not implemented yet

    x = Conv1D(25,(shapes[4]),strides=4)(x)
    x = LeakyReLU(alpha=0.1)(x)

    x = Reshape((256))(x)

    Dout = Dense(256)(x)

    D = Model(inputs=[Din],outputs = Dout)
    D.compile(loss="binary_crossentropy", optimizer=dopt)

    return D, Dout

Din = Input(shape=[16384])
D, D_out = defineDisc(Din)
D.summary()

Верны ли эти измерения, которые я даю сверточным слоям? Было бы полезно, если бы кто-то, имеющий опыт работы с тензорным потоком и сверточными сетками, мог дать здесь некоторое представление

...