Странный объект сетки, выходящий из AutoEncoder

avatar
Ulto 4
9 августа 2021 в 02:42
38
0
0

Я экспериментирую с автокодировщиками для дипфейков, и у меня есть код, который выглядит примерно так.


import tensorflow as tf

from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import pickle
import numpy as np
path = 'youtube_stuff2/'
ot = pickle.load(open(path+'oi.pickle','rb'))
kt = pickle.load(open(path+'ki.pickle','rb'))

ot = ot/255.0
kt = kt/255.0
print(ot.shape)
input()
def MainEncoder():
    inp = Input(shape=(64,64,3))
    x = Conv2D(256,2, padding="same")(inp)
    x = MaxPool2D()(x)
    x = Conv2D(128,2,padding="same")(x)
    x = Flatten()(x)
    encoded = Dense(100,activation="relu")(x)

    encoder= Model(inp,encoded)
    return encoder


def Decoder():
    enc = Input(shape=(100,))
    y = Dense(128)(enc)
    y = Dense(768)(y)
    y= Reshape((16,16,3))(y)
    y= Conv2DTranspose(128,(1,1),(2,2),padding='same')(y)
    y= Conv2DTranspose(128,(1,1),(2,2),padding='same')(y)
    decoded1 = Conv2D(3,1,padding="same")(y)
    decoder = Model(enc,decoded1)
    return decoder
encoder= MainEncoder()

decoderA = Decoder()
decoderB = Decoder()

print(encoder.summary())
print(decoderA.summary())
print(decoderB.summary())
input()
#decoder=  Model(encoded_input,decoded1)
#print(decoder.summary())
Inp = Input(shape=(64,64,3))
Inp2 = Input(shape=(64,64,3))

AutoEncoder1 = Model(Inp,decoderA(encoder(Inp)))
AutoEncoder2 = Model(Inp2,decoderB(encoder(Inp2)))
AutoEncoder1.summary()
AutoEncoder2.summary()
print(ot[0].shape)
input()
AutoEncoder1.compile(optimizer='adam',loss='mse')
AutoEncoder2.compile(optimizer='adam',loss='mse')
AutoEncoder1.fit(ot,ot,16,100)
AutoEncoder2.fit(kt,kt,16,100)

encoder.save(path+'encoder3')
decoderA.save(path+'obama3')
decoderB.save(path+'kimmel3')
AutoEncoder1.save(path+'obama_encoder')
AutoEncoder2.save(path+'kimmel_encoder')


Проблема в том, что всякий раз, когда я пробую глубокую подделку (код ниже), я всегда получаю изображение с синей сеткой (я знаю, что она синяя, потому что изображение установлено по умолчанию в BGR). Как бы я решил эту проблему? enter image description here

Тестовый код

Источник

Ответы (0)