[英]In Keras, how could I input two images to a Dense layer?
我想使用Keras和TensorFlow进行以下操作:
我的训练数据中有10.000套三个图像,每个图像8x8字节,颜色值从0到16。 我称它们为图像A,B和C。(实际上,它们在csv文件中表示为三个由64个十六进制字符组成的字符串)
C是A和B的一种组合。
我想做的是训练网络,使它获得A和B作为输入,并获得C作为标签。 然后馈入网络之前未见的两个图像(A,B)并生成C。
我所做的读取csv文件的操作是:
import pandas as pds
training_data_filename = 'training_data.csv'
dataframeX = pds.read_csv(training_data_filename, usecols=[2, 3])
dataframeY = pds.read_csv(training_data_filename, usecols=[4])
print(dataframeX.head())
print(dataframeY.head())
输出为:
A \
0 0x7ff10d4d9fc927fc0fdfcd43e1715a34b7def9d77299...
1 0xe6da2b370a3b5b42cf2bc0a082e2e0165f2f321bd10c...
2 0xf179a821c24164fcacd6e75b15892fa8c8e42cb1571a...
3 0x27eb1825923ef55e80491199ec68438b94857f02ed47...
4 0x77bc45a7728b4578066639ef4525f0fe5d80d450595c...
B
0 0xd9b40a45b5df976433ebdfddcfe290a66ecf576d18ae...
1 0xf765866850270f595d8239acee9d0d8634249b9d4ac6...
2 0x61cc8870ca4690953184f3b680bcdc38039215d2174b...
3 0x515f6afe8e6f9098abc0da8807ee1070947a4686edd0...
4 0x8ffb621c0398e392d0be0000e3088649eced85dd0c45...
C
0 0x35c1f6ebc3ef2d424ced351b65be8c396f8396d69411...
1 0x4421ce104498ad13b639d6f26b105b4be092f3786f3b...
2 0xcbab77b6c025fe66f967f46ff6138f034dc28fedcb50...
3 0x1f6c372b5d2dfecf29592f71a49dfda5fb930e4e90d5...
4 0x2618f3b170046de775727421ed122174f31ae15fa555...
但是我不明白如何将(A,B)馈送到密集层并将C用作所需的输出。 如何建立模型?
您不能将字符串输入密集的层。 密集层期望数字向量作为输入。 因此,第一步将是将输入图像转换为numpy数组(我不确定为什么您的图像是十六进制字符串)。
例如:
import cv2
numpy_array = cv2.imread("img.jpg")
从那里可以很容易地将numpy数组提供给密集层并进行分类。 有关代码示例,请参见: 在MNIST数据集上训练简单的深度NN
就是说,如果我对您的理解正确,那么您想从两个图像A和B生成一个图像C。这对于深度神经网络不是一件容易的事。 如果您要这样做,请看一下卷积神经网络和生成对抗网络。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.