首页 > 解决方案 > 使用 keras 输出图像 - 如何指定输出层的形状。输入图像和输出图像尺寸为(210,210,3)

问题描述

我是 Keras 的新手。我正在尝试将颜色反转图像输入神经网络,然后预测真实图像。这样我的 x 就变成了倒置的图像,而 y 变成了真实的图像。但我不知道如何使用 keras 获取输出图像。

这就是我想要表演的

这是我的代码。

import numpy as np
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.models import Sequential
from keras.layers import Conv2D,MaxPooling2D,Flatten,Dense

real=[]
for i in range(1,11):
    img=load_img(f"resized 1/{i}.jpg",target_size=(210,200))
    img=img_to_array(img)
    real.append(img)

invs=[]
for i in range(1,11):
    img=load_img(f"resized 2/{i}i.jpg",target_size=(210,200))
    img=img_to_array(img)
    invs.append(img)

x=np.array(invs)
y=np.array(real)
x=x/255
y=y/255


model=Sequential()

model.add(Conv2D(64,(3,3),activation='relu'))
model.add(MaxPooling2D((2,2)))

model.add(Conv2D(64,(3,3),activation='relu'))
model.add(MaxPooling2D((2,2)))

model.add(Flatten())
model.add(Dense(128,input_shape=x.shape[1:],activation='relu'))

在此之后我应该怎么做我应该如何指定输出层....我被卡住了

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(x,y,epochs=5,validation_split=0.1)

在此先感谢....我已经参考了这篇文章,但什么也得不到 - Keras:将图像输入 CNN 并获取图像输出

标签: pythontensorflowkerasconv-neural-networkgenerative-adversarial-network

解决方案


这不是分类或回归问题。因此,您使用的神经网络类型(卷积)不适合这个问题。

我认为神经风格迁移会更合适。在这种情况下,应该使用生成对抗网络 (GAN)。
您可以在此处阅读有关它的示例:https ://www.tensorflow.org/tutorials/generation/dcgan


推荐阅读