Python_numpy向量化编程以及激活函数

发布时间 2023-10-09 21:02:10作者: 辰令

Linux 执行二进制文件

file 查看文件类型

1.更改文件权限:可以使用chmod命令更改文件的权限,例如:chmod +x /path/to/file将文件设置为可执行。

2.在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:
    error while loading shared libraries: libvtkRenderingCore8.2.so.1: cannot open shared object file: No such file or directory
3.修改环境变量

https://blog.51cto.com/u_15717531/5471391

激活函数

pytorch
   torch.nn.Softplus
   torch.nn.Sigmoid
   torch.nn.ReLU
   torch.nn.Tanh

numpy

   numpy.tanh
###激活函数
import numpy as np 
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def tanh(x):
    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x)) 

def relu(x):
    return np.maximum(0, x)
	
def leakyRelu(x):
    return np.maximum(0.01*x, x)	

numpy.ufunc 对象

type(np.add)#返回的是   <class 'numpy.ufunc'>  即ufunc对象	
###自定义ufunc对象  参数func指的是你要使用的函数,第二个参数为func中的参数个数,第三个参数为func中的返回值的个数
#### 。函数名、入参个数、返回值个数
import numpy as np
 
def my_ufunc(x, low, high):    # 第一步,定义函数
    if x < low:
        return -1
    elif x > high:
        return 1
    else:
        return 0
my_func = np.frompyfunc(my_ufunc, 3, 1)    # 第二步
 
x = np.arange(10)
y = my_func(x, 3, 6)            # 3 使用
print(x)    # [0 1 2 3 4 5 6 7 8 9]
np.frompyfunc()转换的函数返回值是object,故需要显式将其类型转换为所需要的类型,比如np.float等
 使用frompyfunc(func,nin,nout)将单值计算函数转换成数组计算函数,其中func是单值计算函数,nin是func的输入参数的个数,nout是func的返回值的个数

numpy 向量化函数

ufunc函数即通用函数(universal function),是一种能够对数组中的所有元素进行操作的函数
 使用frompyfunc或者vectorize可以将计算单个元素的函数转换成对数组中每个元素的ufunc函数		
    vectorize
    vectorize()类似于frompyfunc(),只不过可以通过otypes指定返回的数组的元素类型	
 class numpy.vectorize(pyfunc=np._NoValue, otypes=None, doc=None, excluded=None, cache=False, signature=None)	

向量化运算-Pandas

 Pandas apply()函数允许用户传递一个函数并将其应用于Pandas系列的每个单个值
  自定义的函数,还是匿名函数lambda
alist.sort(key=lambda f: float(f.split('/')[-1][0:-4]))

参考

   https://numpy.org/doc/stable/reference/generated/numpy.tanh.html	
  [Python] Numpy函数与激活函数的实现 https://zhuanlan.zhihu.com/p/65417338	
   https://zhuanlan.zhihu.com/p/592133582
   Python中对numpy库的学习(四)二元函数运算、广播以及自定义ufunc函数