Skip to content

MKLDNN activation 如何更好的与Paddle原有的activation 剥离开 #4200

@tensor-tang

Description

@tensor-tang

现有Paddle的activation的实现主要放在paddle/gserver/activations/ActivationFunction.cpp

在ActivationFunction.cpp中使用了一个static的全局变量gActivationRegistrar

每实现一个新的激活函数,会在这个变量中加入新的active type, END_DEFINE_ACTIVATION(ACTIVATION_NAME)

这个变量会在静态函数create函数中用于创建激活函数。

最终Layer.cpp中会调用这个静态函数create

现在的问题是,由于最终调用的是activation_.reset(ActivationFunction::create(action_type));

如果想要实现mkldnn的激活函数,并且不改变这个接口的话,就需要按照#4199 中加宏定义的方式方式实现。

但是宏定义的方式并不推荐,大家有没有比较好的方式可以解决 @luotao1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions