首页 > 解决方案 > 这是使用 Keras 嵌入层的正确方法吗?

问题描述

我目前正在开发一个 GAN 网络来生成有缺陷的太阳能电池板 EL 图像。在这个 GAN 中,我使用嵌入层作为标签,我对嵌入层的使用有疑问。

首先,一点上下文:一般来说,EL 图像可以包含三种不同的故障:无故障、Crack C、Crack A 和 Crack B。

因此,我目前使用标签作为输入,表示为单热编码向量。这种向量的一个例子可以是:[0,0,0] 或 [0,0,1] 等等。

但是,现在我不确定使用 one-hot 编码向量作为嵌入层的输入是否是个好主意。这是使用嵌入层的正确方法,还是标签输入应该不同?

这是我现在正在使用的标签输入的代码:

#######Label-Input Block:

in_label = layers.Input(shape=(3,))
              
in_label1 = Embedding(n_classes, 50)(in_label)
               
n_nodes = 4*4              
in_label2 = WeightScalingDense(in_label1, filters=n_nodes, gain=np.sqrt(2)/4, use_pixelnorm=False)        
in_label3 = Flatten()(in_label2)
        
#Reshape        
in_label4 = layers.Reshape((4, 4, 3))(in_label3)        

标签: machine-learningkerasdeep-learningword-embeddinggenerative-adversarial-network

解决方案


推荐阅读