machine-learning - 这是使用 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)
解决方案
推荐阅读
- amazon-web-services - 启动具有较小根卷存储的实例
- javascript - 节点.js | 将一个数组中的元素插入另一个数组中的随机位置
- html - 制作线条动画加载器
- css - 元标签的响应式网页设计
- encode - 如何使用 c# 将 è、à 等国际字符转换为 excel 中的普通字符(我使用的是 ClosedXML)
- python - `np.add.at` 到二维数组
- c# - 如何在我的语法中找到错误的字符
- java - 如何在二维字符数组的空单元格中插入占位符值
- c++ - 使用 CFileDialog 打开文件失败时如何捕获异常
- c++ - 当某个进程不活动时如何防止我的dll运行