首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离散值Keras Conv3D层

离散值Keras Conv3D层
EN

Stack Overflow用户
提问于 2019-09-11 17:55:00
回答 3查看 160关注 0票数 0

我正试图建立一个模型来学习3D空间的特征。与图像处理不同,3D矩阵的值是不连续的;它们表示在特定坐标下可以找到的“物质”的一些离散值(例如,grass值为1或楼梯值为2)。

是否有可能训练一个模型来学习空间的特征而不插入中间值?例如,我不想让神经网络推断1.5是某种草阶。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-11 18:06:28

您将需要使用一个热编码,它将分类值表示为一个值设置为一个的零数组。这意味着草(id = 1)为[0, 1, 0, 0, ...],楼梯(id = 2)为[0, 0, 1, 0, ...]。要执行一次热编码,请查看keras的to_categorical函数。

进一步读:

票数 1
EN

Stack Overflow用户

发布于 2019-09-11 18:06:39

作为任何范畴模型,这应该是一个“一个热点”的数据。

数据的“通道”维度应该有一个n-materials大小。

  • 值=0表示没有这种物质存在。
  • 值=1表示存在这种物质

因此,您的输入形状将类似于(samples, spatial1, spatial2, spatial3, materials)。如果您的数据当前形状为(samples, s1, s2, s3),并且像您所描述的那样将物质转换为整数,则可以使用to_categorical将整数转换为“单热”。

票数 1
EN

Stack Overflow用户

发布于 2019-09-11 18:14:09

虽然我不确定这是否是你想要的,但我可以想象,在卷积网络的瓶颈之后,一个人通常会使用扁平层,然后输出到一个密集的层。输出层,如果使用sigmoid激活,将给您的每个类的概率,必须是一个热编码,正如其他人所建议的。

如果您希望网络本身的输出在离散值中,我想您可以在输出层中使用某种逐步激活函数。但是,您必须注意您的损失在整个网络中仍然是可区分的(这就是为什么这种激活功能在keras中不可用)。这可能令人感兴趣:https://github.com/keras-team/keras/issues/7370

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57894439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档