当前位置: 首页 > 知识库问答 >
问题:

寻找Keras中致密层的掩蔽支撑

商高谊
2023-03-14

我做了一个小的概念验证,以了解Keras中的致密层是否支持掩蔽。下面是我的代码:-

import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Masking,Flatten
import numpy as np

input_shape = (125,)
model = Sequential()
model.add(Masking(mask_value=-1,input_shape=input_shape))
model.add(Dense(16, activation='relu', kernel_initializer='he_uniform'))
model.add(Dense(8, activation='relu', kernel_initializer='he_uniform'))
model.add(Flatten())
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_absolute_error', optimizer='adam', metrics=['mean_absolute_error'])
history = model.fit(x_train, y_train, epochs=5, batch_size=1, verbose=1)

我的数据集仅包含2个样本,每个样本具有125个特征,如下所示:-

[[  1.   2.   3.   4.   5.   6.   7.   8.   9.  10.  11.  12.  13.  14.
   15.  16.  17.  18.  19.  20.  21.  22.  23.  24.  25.  26.  27.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.]
 [ 82.  83.  84.  85.  86.  87.  88.  89.  90.  91.  92.  93.  94.  95.
   96.  97.  98.  99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109.
  110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123.
  124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137.
  138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151.
  152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.
   -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.  -1.]]

使用掩码层,我希望密集层在训练网络时忽略所有“-1”值。因此我编写了model.add(掩码(mask_value=-1,input_shape=input_shape))

我还访问了Keras Github代码(https://github.com/keras-team/keras/blob/master/keras/layers/core.py)对于致密层,发现致密层类具有<代码>自身。支持\u masking=True,但我不确定它是否会将掩码传播到网络中的其他层。

因此,我的问题如下:

  1. 如果我使用掩蔽层并掩蔽这些虚拟(填充的)-1”值,我的网络会在训练期间忽略这些“-1”值吗
  2. 密集层是否会将其掩码传播到网络中的其他层,以便网络在训练期间不会在这些虚拟值上训练
  3. 由于我的实现中的稠密层不抛出稠密层,因此稠密层18不支持掩蔽错误,这是否意味着它支持掩蔽

任何帮助都将不胜感激。谢谢...

共有1个答案

冯嘉珍
2023-03-14

不确定您是否收到过答案,但如果您没有收到,您可以查看以下内容:掩蔽指南

我只是想看看密集支撑是否也能掩盖。以下是链接指南中的相关引用:

如果有一个不修改时间维度的自定义层,并且希望它能够传播当前输入掩码,则应设置self。在层构造函数中支持\u masking=True。在这种情况下,compute\u mask()的默认行为是只传递当前掩码。

这对我来说,表示稠密将传播面具。

 类似资料:
  • 我正在基于本文开发一个模型,由于层不支持掩蔽,我遇到了一个异常。 我有一个层,参数设置为。但是,由于后续的层不支持掩蔽,我得到了一个异常。预期会出现例外情况,因为嵌入层的文档中实际说明了

  • 我想知道是否有可能在卷积神经网络的密集层中添加一个变量(以及之前卷积层的连接,是否有额外的特征集可用于区分目的)?如果可能的话,有人能给我举个例子/文档来解释如何做到这一点吗? 我希望使用Keras,但如果Keras限制太多,我很乐意使用TensorFlow。 编辑:在这种情况下,我认为这应该起作用的方式是我向神经网络提供一个包含图像和相关特征集的列表(以及在训练相关分类期间)。 EDIT2:我想

  • 我想做一些类似于完全卷积网络的论文(https://people.eecs.berkeley.edu/~jonlong/long\u shelhamer\u fcn。pdf)使用Keras。我有一个网络,它最终将要素地图展平,并将其穿过几个密集的图层。我想将权重从这样的网络加载到一个网络中,在这个网络中,密集层被等效卷积所取代。 Keras附带的VGG16网络可以作为一个示例,其中最后一个MaxP

  • 一直在尝试在Keras中制作神经网络,但遇到了一个问题,即我的一个密集层和激活层之间存在形状不匹配。我错过了一些明显的东西吗?使用Tensorflow后端。 那么我的模型如下: 但我得到以下错误: 该错误似乎源自使用sigmoid激活输入到第二激活层。例如: 为什么会出现不匹配?

  • 我做了一个这样的设计 如何用CSS屏蔽背景? 我试过这样的代码 null null 我使用的掩码图像是 https://i.stack.imgur.com/fg2k5.png https://i.stack.imgur.com/zmylj.png 你们能告诉我我的代码出了什么问题吗?我知道我可以只导入到png,但我尝试使用css

  • 问题内容: 我知道这是一个有很多问题的主题,但是我找不到解决问题的办法。 我正在使用遮罩层在可变长度输入上训练LSTM网络,但似乎没有任何效果。 输入形状(100、362、24),其中362为最大序列长度,特征为24,特征数为100,样本数为100(划分为75列/有效值为25)。 输出形状(100,362,1)随后转换为(100,362-N,1)。 这是我的网络的代码: 我的数据最后被填充。例: