最近想折腾折腾神经网络,遇到一句看不懂,费了好大劲才弄个明白。
self.activation_function = lambda x: scipy.special.expit(x)
首先,lambda x: scipy.special.expit(x)这是什么语法?
这句的语法就不是常用的。没见过啊,其实这是函数的简化版(匿名函数),和def声明的函数是一样的效果,因为函数体内就一句,所以就被写成的匿名函数。当然可以这样写:
def activation_function(self, x):
return scipy.special.expit(x)
我就直接修改成这样了:
@staticmethod
def sigmoid(x):
"""
这个函数的作用就是把数据压缩到0至1之间,成S型分布的曲线
:param x:
:return: 0-1之间的小数,不包括0和1
"""
return scipy.special.expit(x)