Keras自定义层

keras已经有很多封装好的库供我们调用,但是有些时候我们需要的操作keras并没有,这时就需要学会自定义keras层了

1.Lambda

①从python语法的角度上来说lambda表达式:

匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序
lambda可以接收任意多个参数(包括可选参数),并且返回单个表达式的值
格式:lambda [arg1 [, arg2, ..., argn]] : expression
冒号前面是参数,可以有多个,用逗号隔开;冒号右边是表达式。其实lambda返回的是一个函数地址,也就是函数对象。
Keras自定义层_第1张图片

优点 缺点
不需要考虑函数命名问题 主体是一个表达式,而不是一个代码块
代码更加精简 函数有自己的命名空间,不能访问自有参数列表之外或全局命名空间里的参数

②Keras中的Lambda表达式:

1)如果你只是想对流经该层的数据做个变换,而这个变换本身没有需要学习的参数,那么直接用Lambda Layer是最合适的了。
即:lambda层没有权值或者偏置参与模型的训练

你可能感兴趣的:(Keras,Keras,自定义层)