Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连体CNN(Tensorflow)的哪种激活功能?_Python_Tensorflow_Cnn_Activation Function_Siamese Network - Fatal编程技术网

Python 连体CNN(Tensorflow)的哪种激活功能?

Python 连体CNN(Tensorflow)的哪种激活功能?,python,tensorflow,cnn,activation-function,siamese-network,Python,Tensorflow,Cnn,Activation Function,Siamese Network,我正在使用预先训练过的VGG16网络训练一个暹罗CNN,并添加一些层,然后计算一个相似性函数(两幅图像特征之间的绝对距离)。VGG16瓶颈之后的模型如下所示: left_input = Input(input_shape) right_input = Input(input_shape) model.add(Dense(1024, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(0.30)) mode

我正在使用预先训练过的VGG16网络训练一个暹罗CNN,并添加一些层,然后计算一个相似性函数(两幅图像特征之间的绝对距离)。VGG16瓶颈之后的模型如下所示:

left_input = Input(input_shape)
right_input = Input(input_shape)

model.add(Dense(1024, activation='relu')) 
model.add(BatchNormalization())
model.add(Dropout(0.30))
model.add(Dense(1024, activation='sigmoid')) 

encoded_l = model(left_input)
encoded_r = model(right_input)
    
L1_layer = Lambda(lambda tensors:K.abs(tensors[0] - tensors[1]))
L1_distance = L1_layer([encoded_l, encoded_r])
L1_distance = K.pow(L1_distance, 3)

prediction = Dense(1,activation='sigmoid',bias_initializer=initialize_bias)(L1_distance)

siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)
我主要关注这篇文章:

该模型在大量类中表现不佳。我想知道激活函数是否存在问题:对于两个相同的图像,L1_距离将为0,因此网络必须训练无限偏差以获得1的输出,这感觉不正确

我已经搜索了TF激活函数,但我找不到一个对称函数,它本质上是1在0,0在+/-Inf。我尝试了一个TF.math.Recipient层的解决方法,但感觉不对(而且也不太有效)

我是否应该尝试编写自定义激活函数?有更好的办法吗