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

在CNN中展平后可以添加数据吗?

班承德
2023-03-14

我正在与美国有线电视新闻网(CNN)合作,我的教授希望我尝试包括一些相关的信息,但这些信息在图像本身中是不可用的。到目前为止,数据是一维数组。他认为在压扁层之后和致密层之前添加它应该是可能的,但我们都还没有足够的知识。

model = Sequential()
for i, feat in enumerate(args.conv_f):
    if i==0:
        model.add(Conv2D(feat, input_shape=x[0].shape, kernel_size=3, padding = 'same',use_bias=False))
    else:
        model.add(Conv2D(feat, kernel_size=3, padding = 'same',use_bias=False))
        model.add(BatchNormalization())
        model.add(LeakyReLU(alpha=args.conv_act))
        model.add(Conv2D(feat, kernel_size=3, padding = 'same',use_bias=False))
        model.add(BatchNormalization())
        model.add(LeakyReLU(alpha=args.conv_act))
        model.add(Dropout(args.conv_do[i]))

model.add(Flatten())

#Input code here

denseArgs = {'use_bias':False}
for i,feat in enumerate(args.dense_f):
    model.add(Dense(feat,**denseArgs))
    model.add(BatchNormalization())
    model.add(LeakyReLU(alpha=args.dense_act))
    model.add(Dropout(args.dense_do[i]))
model.add(Dense(1))

很明显,我们可能错了,所以非常感谢您的帮助!谢谢

共有1个答案

公子昂
2023-03-14

我知道的一种方法需要使用keras的函数式API。这意味着您必须放弃当前使用的Sequential方法。

以玩具模型为例,让集团:

img_input = Input((64, 64, 1))
model = Conv2D(20, (5, 5))(img_input)
model = MaxPooling2D((2, 2))(model)

model = Flatten()(model)

是CNN的卷积层,最终变平。可以通过将最后一个模型层与新信息连接起来来添加信息。新信息可以通过创建一个简短的模型(这里是af\u输入)来打包,该模型只包含一个输入层。

例如:

af_input = Input(shape=(2,))

model = Concatenate()([model, af_input])

model = Dense(120, activation='relu')(model)
model = Dropout(0.1)(model)
model = Dense(100, activation='relu')(model)

predictions = Dense(2)(model)

fullmodel = Model(inputs=[img_input,af_input], outputs=predictions)

因此,现在CNN平坦层的结果将与额外信息向量(这里有2个特征)连接起来。

然后可以像往常一样继续向网络添加层。

我建议您检查stackoverflow链接:如何在keras中连接两个层?

另一个例子和一个很好的解释。

 类似资料:
  • 问题内容: 我有一个正在创建的字符串,并且需要向该字符串添加多个“ \ 0”(空)字符。在每个空字符之间是其他文本数据(仅ASCII字母数字字符)。 我的问题是,在J2SE中,当您添加第一个null(\ 0)时,java似乎确定它是一个字符串终止符(类似于C ++),并且忽略了所有附加的数据。不引发错误,尾随的数据将被忽略。我需要在字符串中的null后强制添加其他尾随数据。我必须对我支持的旧数据库

  • 问题内容: 我有一个枚举,看起来像 我想做类似的事情 我出于教学目的简化了该示例,但是对于我的实际示例而言,这对我真的很有用。我可以用Java做到吗? 问题答案: 是的Enum是Java中的类: 但是在您的真实系统中,由于有固定类型的动物,我也将其设为Enum。 还要注意,使任何实例变量也很重要。 您可以在Java Language Specification中 找到有关它的更多详细信息。

  • 问题内容: 是否可以在CSS中为渐变添加噪音? 这是我的径向渐变代码: 我还要添加什么以使其上具有噪声,赋予其纹理? 问题答案: CSS目前没有办法在背景中添加“噪音”。 一种替代解决方案是在图形编辑器中创建透明噪波png。然后将该图形作为背景应用到。然后,您需要将其放置在的整个区域上,然后应该会出现带有噪声的渐变外观。

  • 问题内容: 可以说我有两个协议: 我想要做的是为“ TheirPcol”创建一个协议扩展,该协议扩展允许在符合“ TheirPcol”的任何事物上工作。所以像这样: 关键是“ TheirPcol”,“ TheirStruct”全部由我无法控制的外部API处理。因此,我通过了实例“ inst”。 能做到吗?还是我必须做这样的事情: 问题答案: 似乎有两个用例说明为什么您想做自己正在做的事情。在第一个

  • 注:看这篇文档之前,可先参考文档:http://docs.wex5.com/custom-icon/ 1.先修改文件IconWebPage.java 如图: 2.修改comp.min.css.xml 如图: 新增: <file>justep/lib/css2/dataControl.icons.css</file> 3.执行dist.bat 因为修改了comp.min.css.xml,所以要重新生