tensorflow - 我们在YOLO的输出层使用哪个激活函数?

标签 tensorflow keras classification object-detection yolo

我在 Keras 中构建了一个简单的 YOLO 本地化模型,例如,

model_layers = [
    keras.layers.Conv2D( 32 , input_shape=( input_dim , input_dim , 3 ) , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 32 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.MaxPooling2D( pool_size=( 2 , 2 ) , strides=2 ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.MaxPooling2D( pool_size=( 2 , 2 ) , strides=2 ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.MaxPooling2D( pool_size=( 2 , 2 ) , strides=2 ),
    keras.layers.Conv2D( 128 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 128 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 64 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 32 , kernel_size=( 3 , 3 ) , strides=1 , activation='relu' ),
    keras.layers.Conv2D( 8 , kernel_size=( 3 , 3 ) , strides=1 ),
]

model = keras.models.Sequential( model_layers ) 
model.compile( loss=yolo_keras_loss , optimizer=keras.optimizers.Adam( lr=0.0001 ) )
model.summary()

正如所观察到的,最后一层的激活函数是“线性的”。

But with regards to YOLO's output, all the values ( confidence score, bounding box coordinates and class probabilities ) are normalized. So should I use a sigmoid activation function or a linear activation function?



我在任何有关 YOLO 的资源中都找不到输出层的激活函数。

最佳答案

如果您引用 original paper ,他们对最后一层使用线性激活。在“2.2. 培训”部分,您可以找到:

We use a linear activation function for the final layer and all other layers use the following leaky rectified linear activation...

关于tensorflow - 我们在YOLO的输出层使用哪个激活函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443049/

相关文章:

python - 如何使 `fit_generator` 与 `tf.keras.Model` 一起工作

python - 在 Tensor Flow 中使用带有 midi 文件的 RBM,收到一些错误

python - 如何在 tf.data.Dataset.map() 中使用 Keras 的 predict_on_batch?

machine-learning - 支持向量的数量与训练数据和分类器性能之间有什么关系?

classification - WEKA - 分类 - 训练和测试集

python - Tensorflow 对象检测 API 中未检测到任何内容

python - “元组”对象没有属性 'layer'

machine-learning - 值错误 : Input 0 is incompatible with layer conv1d_1: expected ndim=3, 发现 ndim=4

python - 如果有 2 个 keras 模型共享层,设置 trainable=False 后要编译哪个模型?

python - 用户警告 : Label not :NUMBER: is present in all training examples