首页 文章

在Keras,我怎样才能将两个图像输入到Dense图层?

提问于
浏览
0

我想使用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作为所需的输出 . 我如何 Build 我的模型?

1 回答

  • 0

    您无法将字符串输入密集层 . 密集层期望数字向量作为输入 . 所以第一步是将输入图像转换为numpy数组(我不确定为什么你的图像是十六进制字符串) .

    例如 . :

    import cv2
    numpy_array = cv2.imread("img.jpg")
    

    从那里可以很容易地将numpy阵列馈送到密集层并执行分类 . 有关代码示例,请参阅:Training a simple deep NN on the MNIST dataset

    也就是说,如果我理解正确,你想要从两个图像A和B生成图像C.这不是深层神经网络的工作 . 如果这是你想要做的,看看和卷积神经网络和生成对抗网络 .

相关问题