Python中矩阵运算的小坑

在实现BP算法时,作者遇到了Python中矩阵运算的一些陷阱。首先是自定义的sigmoid函数,由于整型运算导致0.9被取为0。解决办法是确保输入为浮点型。接着,文章探讨了矩阵运算中的转置概念,区分了不同形状的一维和二维数组的性质。通过实例展示了如何正确理解和操作这些数组。
摘要由CSDN通过智能技术生成

晚上学习了BP算法,感觉蛮简单美滋滋地去用python实现。结果一搞就是很久…悲愤之中于这篇文章中列举实现过程中遇到的大坑引以为戒!

1.自定义的sigmod函数

为了书写方便,自定义了sigmod函数,传入数组,进行sigmod函数运算后返回。

import numpy as np
def sigmod(y):
    for i in range(len(y)):
        y[i] = 1.0 / (1.0+np.exp(-y[i]))
    return y
#穿入的y
y1 = np.array([973,202,77,541,59,796,429,187,131,63,853,938,40,256,738,335,77,357,  
    114,308,100,210,906,10,12,677,181,710,250,30,594,936,160,133,83,909,
    222,71,42,43,591,763,33,240,479,839,144,102,27,137,9,22,65,9,220,80,
    25,535,216,721,794,161,63,186,22,466,35,49,463,18,354,871,638,367,216,
    223,818,68,38,208,604,435,47,434,135,29,710,62,457,353,899,79,64,44,
    39,512,119,105,114,148])
#sigmod运算    
s1 = sigmod(y1)
print(s1)          
#输出
[1 1 1 1 1 1 1 1 1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值