gpt4 book ai didi

deep-learning - Keras 中的 Convolutional2D Siamese 网络

转载 作者:行者123 更新时间:2023-12-04 15:32:30 27 4
gpt4 key购买 nike

我正在尝试使用 Keras 的 Siamese层与共享 Convolution2D 一起使用层。
我不需要输入在 Siamese 之前通过任何其他层层但Siamese layer 要求指定输入层。我不知道如何创建输入层以匹配 conv 层的输入。 Siamese的唯一具体例子我能找到的正在使用的层在 tests 中哪里Dense层(带有矢量输入)用作输入。基本上,我想要一个输入层,它允许我将图像尺寸指定为输入,以便它们可以传递到共享 conv 层。

在代码中,我有如下内容:

img_rows = 28
img_cols = 28
img_input_shape = (1, img_rows, img_cols)

shared = Sequential()

shared.add(Convolution2D(nb_filters, nb_conv, nb_conv,
border_mode='valid',
input_shape=img_input_shape))
shared.add(Activation('relu'))
# .... more layers, etc.

right_input_layer = SomeInputLayer(input_shape=img_input_shape) # what should SomeInputLayer be?
left_input_layer = SomeInputLayer(input_shape=img_input_shape)
siamese = Siamese(shared, [left_input_layer, right_input_layer], merge_mode='concat')

model = Sequential()
model.add(siamese)
# ...
model.compile(loss=contrastive_loss, optimizer='rmsprop')

应该怎么做 SomeInputLayer是?或者我的方法一般不正确?

最佳答案

好吧,我想通了。 《抽象》Layer类基本上是一个传递层,这正是我所需要的。我也犯了一个错误,我认为Siamese可以采用整个模型(即多层),但实际上它只需要一层。为了让创建这些 Siamese 层不那么痛苦,有一个 add_shared_layer辅助功能。

我也应该指出这个 pull request这将允许共享层到模型中的第一层,这正是我想要做的。

关于deep-learning - Keras 中的 Convolutional2D Siamese 网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com