Advertisement

自定义基于深度学习框架的Keras层

阅读量:

一. 所有keras层的基类:Layer

Keras中所有层的基类定义位于文件keras/engine/topology.py内的Layer类中。

python语言基础

所采用的装饰器包括:

  • @property 使类中的函数能够如同类变量般被操作
  • @interfaces.legacy_xxx_support 使函数兼容 keras 1.x 的 API 接口
  • @classmethod 定义的类函数属于整个类,其功能与 C++ 或 JAVA 中的静态方法类似。此类方法会接收一个表示类本身的参数 cls,从而可以基于 cls 进行相关处理。当子类继承并调用此类方法时,传入的 cls 参数将指向子类本身,而非父类。该方法既可以通过实例对象访问,也可以通过类名进行调用,同时在内部也可使用 self 进行操作。
  • @staticmethod 将外部定义的函数整合至类中,同样支持通过实例或类名访问。其作用与全局函数基本一致

魔法方法:

  • __call__ 赋予类实例类似函数的调用能力,正是 Python 提供这一机制,使得我们能够以如下方式实现层与层之间的连接:
复制代码
    inputs = Input(shape=(784,))
    # 前面的Dense(

全部评论 (0)

还没有任何评论哟~