手写BP(反向传播)算法
BP算法为深度学习中参数更新的重要角色,一般基于loss对参数的偏导进行更新。 一些根据均方误差,每层默认激活函数sigmoid(不同激活函数,则更新公式不一样) 假设网络如图所示: 则更新公式为: 以上列举了最后2层的参数更新方式,第一层的更新公式类似,即上一层的误差来自于下一层所有的神经元,e的更新就是不断建立在旧的e上(这里g可以当做初始的e) 下面上代码: 1,BP算法 # 手写BP算法
import numpy as np
# 先更新参数,再继续传播
# layers:包括
ZT : JAVA和JAVAC 命令行;java 带有包名编译并运行,附带外部依赖jar包运行
ZT: https://blog.csdn.net/just3do/article/details/68957618 有时候写个小测试,不想开idea,就用cmder,但是老忘记怎么编译,就copy别人的一份博客。 javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。 javac -classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆
python+selenium爬取百度文库不能下载的word文档
有些时候我们需要用到百度文库的某些文章时,却发现需要会员才能下载,很难受,其实我们可以通过爬虫的方式来获取到我们所需要的文本。 工具:python3.7+selenium+任意一款编辑器 前期准备:可以正常使用的浏览器,这里推荐chrome,一个与浏览器同版本的驱动,这里提供一个下载驱动的链接https://chromedriver.storage.googleapis.com/77.0.3865.40/chromedriver_win32.zip 首先我们来看一下百度文库中这一篇文章http
springdata jpa之ddl-auto配置的属性
在jpa中ddl-auto一共有四种: 分别为: ddl-auto:create ----每次运行该程序,没有表格会新建表格,表内有数据会清空; ddl-auto:create-drop ----每次程序结束的时候会清空表 ddl-auto:update ---- 每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新 ddl-auto: validate ---- 运行程序会校验数据与数据库的字段类型是否相同,不同会报错。 上图为properties配置文件的配置项: 使用1)spr
统计一个英文句子中包含2个a的单词有几个,并将两个a替换为星号,不能用count函数
统计一个英文句子中包含2个a的单词有几个,并将两个a替换为星号,不能用count函数 def count(s,x): if (not isinstance(s,str)) or (not isinstance(x,str)): return None num =0 i = 0 while i<=len(s)-1: if s[i:i+len(x)]==x: num+=1 i+=len(x) else: i+=1 return num print(count("abcdbcd","bb")) s
python基础--random包、string包
random随机包 >>> import random #导入随机包 #取随机整数
>>> random.randint(1,10)
4 #取夸指定步长的随机整数
>>> random.randrange(1,10,2) #随机取1-10之间的奇数
9
>>> random.randrange(0,10,2)
2
#去0-1之间的随机小数
>>> random.random()
0.25631948996842346
#取指定区间的随机小数
>>> random
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [others] in table [auth_user]; found [varchar (Types#VARCHAR)], but expec
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [others] in table [auth_user]; found [varchar (Types#VARCHAR)], but expecting [integer (Types#INTEGER)] 这个错误是由于使用springdat
python基础--元祖
元祖tuple 元祖不能改 只能读取 元祖里面存列表/字典(可变类型对象)是可以改变的 定义:a=() >>> type(a)#查看类型 <class 'tuple'> >>> isinstance(a,tuple)#判断是否为元祖 True >>> a=1,2#不加括号也可自动转化为元祖 >>> type(a) <class 'tuple'> >>> a=(1)#只有一个元素是int类型 >>> type(a) <class 'int'> >>> a=(1,)#只放一个元素的元祖必须加逗号
学习python第四天——列表方法
1、append() 列表append()昨天说过用于在列表尾部添加元素 2、clear() 用于列表元素清除,释放内存 3、copy() 字面意思复制,拷贝分为浅拷贝和深拷贝,copy()方法属于列表深拷贝。 深拷贝和浅拷贝抄自其他网页: 浅拷贝 1、对于 不可 变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间。 2、对于 可 变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的),
Python如何获取系统大小端模式
1. 第一种方法导入sys模块; >>> import sys
>>>
>>> sys.byteorder
'little' >>> 2. 第二种方法,使用array模块,将整数用signed integer 4字节表示: | Type code C Type Minimum size in bytes | 'b' signed integer 1 | 'B' unsigned integer 1 | 'u' Unicode character 2 (see note) | 'h' si
python基础--range
range() 函数可创建一个可迭代对象,一般用在 for 循环中。 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。 Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。 Python2 range() 函数返回的是列表。 range(start,end,step) 开始值,结束值,步长(开始值和结束值为左开右闭) range(stop)
range(
排列组合<一个简单的组合数柿子>
没好好听丽路路讲课,石锤 考虑C(n,m)=C(n,n-m),把式子里每一项换成了C(n,m)*(n,n-m) 相当于维护了两堆数,从一堆里取m个,另一个取n-m个 答案显而易见为C(2*n.n)
今日推荐
周排行