'''
尝试下写注释的感觉
'''import numpy as np
import math
import random
'''
#生成随机函数
def random_number(a,b):
return (b-a)*random.random+a
'''#生成矩阵defmakwmatrix(m,n,fill =0.0):
a =[]for i inrange(20):
a.append([fill]*n)return a
#生成激活函数defsigmod(x):return1/(1+np.esp(-x))#构造神经网络架构,分别用num_in,num_hidden,num_out指代输入层、隐藏层、输出层classBPNN:def__init__(self,num_in,num_hidden,num_out):#设置节点数
self.num_in=num_in+1
self.num_hidden=num_hidden+1
self.num_out=num_out
#激活节点
self.active_in=[1.0]*self.num_in
self.active_hidden=[1.0]*self.num_hidden
self.active_out=[1.0]*self.num_out
#创建权重矩阵,分别用weight_in,weight_out指代num_in→num_hidden,num_hidden→num_out两个过程
self.weight_in=makematrix(self.num_in,self.num_hidden)
self.weight_out=makematrix(self.num_hidden,num_out)#为矩阵赋初值for i inrange(self.num_in):for j inrange(self.num_hidden):
self.weight_in[i][j]=random_number(-1.0,1.0)for i inrange(self.num_hidden):for j inrange(self.num_out):
self.weight_out[i][j]=random_number(-1.0,1.0)
defupdate(self,outs):#输入层直接传递数据,不做处理for i inrange(self.num_in-1):
self.active[i]=input[i]#数据在隐藏层求和、激活处理for j inrange(self.num_hidden-1):sum=0.0for i inrange(self.num_in):sum=sum+self.active_in[j]*self.weight_in[j][i]
self.active_hidden[i]=sigmod(sum)#数据在隐藏层求和、激活处理for i inrange(self.num_out):sum=0.0for j inrange(self.hidden):sum=sum+self.active_hidden[j]*self.weight_out[j][i]
self.active_out[i]=sigmod(sum)return self.active_out[i]
deferrorbackupropagate(self,targets,lr,m):#计算输出层误差
out_deltas=[0.0]*self.num_out
for i inrange(self.num_out):
error=targets[i]-self.active_out[i]
out_deltas[i]=derived_sigmod(self.active_out[i])*errror
#计算隐藏层误差
hidden_deltas=[0.0]*self.num_hidden
for i inrange(self.num_hidden):
error=0.0for j inrange(self.num_out):
error=error+out_deltas[j]*self.wight_out[i][j]
hidden_deltas[i]=derived_sigmod(self.active_hidden[i])*error
#更新输出层权值for i inrange(self.num_hidden):for j inrange(self.num_out):
change=out_deltas[j]*self.active_hidden[i]
self.wight_out[i][j]=self.wight_out[i][j]+lr*change+m*self.co[i][j]
self.co[i][j]=change
#更新输入层权值for i inrange(self.num_in):for i inrange(self.num_hidden):
change=hidden_deltas[j]*self.active_in[i]
self.wight_in[i][j]=self.wight_in[i][j]+lr*change+lr*change+m*self.co[i][j]
self.co[i][j]=change
#计算总误差
error=0.0for i inrange(len(targets)):
error=error+0.5*(targets[i]-self.active_out[i])**2return error
'''
太麻烦了不写了
'''
deftrain(self,pattern,itera=1000,lr=0.1,m=0.1):for i inrange(itera):
error =0.0for j in pattern:
inputs=j[0]
targets=j[1]
self.update(inputs)
error=error+self.errorbackpropagate(targets,lr,m)
defdemo():
patt=[[[1,2,5],[0]],[[1,3,4],[0]],[[1,6,2],[1]],[[1,5,1],[0]],[[1,8,4],[0]],]
n = BPNN(3,3,1)
n.train(patt)
'''
尝试下写注释的感觉
'''import numpy as np
import math
import random
#生成随机函数defrandom_number(a,b):return(b-a)*random.random+a
#生成矩阵defmakwmatrix(m,n,fill =0.0):
a =[]for i inrange(20):
a.append([fill]*n)return a
#生成激活函数defsigmod(x):return1/(1+np.esp(-x))#构造神经网络架构,分别用num_in,num_hidden,num_out指代输入层、隐藏层、输出层classBPNN:def__init__(self,num_in,num_hidden,num_out):#设置节点数
self.num_in=num_in+1
self.num_hidden=num_hidden+1
self.num_out=num_out
#激活节点
self.active_in=[1.0]*self.num_in
self.active_hidden=[1.0]*self.num_hidden
self.active_out=[1.0]*self.num_out
#创建权重矩阵,分别用weight_in,weight_out指代num_in→num_hidden,num_hidden→num_out两个过程
self.weight_in=makematrix(self.num_in,self.num_hidden)
self.weight_out=makematrix(self.num_hidden,num_out)#为矩阵赋初值for i inrange(self.num_in):for j inrange(self.num_hidden):
self.weight_in[i][j]=random_number(-1.0,1.0)for i inrange(self.num_hidden):for j inrange(self.num_out):
self.weight_out[i][j]=random_number(-1.0,1.0)defupdate(self,outs):#输入层直接传递数据,不做处理for i inrange(self.num_in-1):
self.active[i]=input[i]#数据在隐藏层求和、激活处理for j inrange(self.num_hidden-1):sum=0.0for i inrange(self.num_in):sum=sum+self.active_in[j]*self.weight_in[j][i]
self.active_hidden[i]=sigmod(sum)#数据在隐藏层求和、激活处理for i inrange(self.num_out):sum=0.0for j inrange(self.hidden):sum=sum+self.active_hidden[j]*self.weight_out[j][i]
self.active_out[i]=sigmod(sum)return self.active_out[i]defevaluate(self,targets,lr,m):#计算输出层误差
out_deltas=[0.0]*self.num_out
for i inrange(self.num_out):
error=targets[i]-self.active_out[i]
out_deltas[i]=derived_sigmod(self.active_out[i])*errror
#计算隐藏层误差
hidden_deltas=[0.0]*self.num_hidden
for i inrange(self.num_hidden):
error=0.0for j inrange(self.num_out):
error=error+out_deltas[j]*self.wight_out[i][j]
hidden_deltas[i]=derived_sigmod(self.active_hidden[i])*error
#更新输出层权值for i inrange(self.num_hidden):for j inrange(self.num_out):
change=out_deltas[j]*self.active_hidden[i]
self.wight_out[i][j]=self.wight_out[i][j]+lr*change+m*self.co[i][j]
self.co[i][j]=change
#更新输入层权值for i inrange(self.num_in):for i inrange(self.num_hidden):
change=hidden_deltas[j]*self.active_in[i]
self.wight_in[i][j]=self.wight_in[i][j]+lr*change+lr*change+m*self.co[i][j]
self.co[i][j]=change
#计算总误差
error=0.0for i inrange(len(targets)):
error=error+0.5*(targets[i]-self.active_out[i])**2return error
'''
太麻烦了不写了
'''deftrain(self,pattern,itera=1000,lr=0.1,m=0.1):for i inrange(itera):
error =0.0for j in pattern:
inputs=j[0]
targets=j[1]
self.update(inputs)
error=error+self.evaluate(targets,lr,m)defdemo():
patt=[[[1,2,5],[0]],[[1,3,4],[0]],[[1,6,2],[1]],[[1,5,1],[0]],[[1,8,4],[0]],]
n = BPNN(3,3,1)
n.train(patt)if __name__ =='__main__':
demo()'''
不行,还是写了好找错
'''
Requirement already satisfied: matplotlib in d:\programdata\anaconda3\lib\site-packages (3.2.2)
Requirement already satisfied: kiwisolver>=1.0.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (1.2.0)
Requirement already satisfied: numpy>=1.11 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (1.18.5)
Requirement already satisfied: cycler>=0.10 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (0.10.0)
Requirement already satisfied: python-dateutil>=2.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (2.8.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in d:\programdata\anaconda3\lib\site-packages (from matplotlib) (2.4.7)
Requirement already satisfied: six in d:\programdata\anaconda3\lib\site-packages (from cycler>=0.10->matplotlib) (1.15.0)
Note: you may need to restart the kernel to use updated packages.
pip install math
Note: you may need to restart the kernel to use updated packages.
ERROR: Could not find a version that satisfies the requirement math (from versions: none)
ERROR: No matching distribution found for math
pip install pandas
Requirement already satisfied: pandas in d:\programdata\anaconda3\lib\site-packages (1.0.5)
Requirement already satisfied: python-dateutil>=2.6.1 in d:\programdata\anaconda3\lib\site-packages (from pandas) (2.8.1)
Requirement already satisfied: numpy>=1.13.3 in d:\programdata\anaconda3\lib\site-packages (from pandas) (1.18.5)
Requirement already satisfied: pytz>=2017.2 in d:\programdata\anaconda3\lib\site-packages (from pandas) (2020.1)
Requirement already satisfied: six>=1.5 in d:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.6.1->pandas) (1.15.0)
Note: you may need to restart the kernel to use updated packages.
pip install pybrain
Collecting pybrain
Downloading PyBrain-0.3.tar.gz (262 kB)
Building wheels for collected packages: pybrain
Building wheel for pybrain (setup.py): started
Building wheel for pybrain (setup.py): finished with status 'done'
Created wheel for pybrain: filename=PyBrain-0.3-py3-none-any.whl size=399047 sha256=5bf8f095e2ac3854ba71fbe14c5c7191ef7cdcbc8d4a40142090b12576173c97
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\b4\e5\c5\db4542d9f7f2d982b1a6165de1d8c6ce2b8de267e9e21bc16a
Successfully built pybrain
Installing collected packages: pybrain
Successfully installed pybrain-0.3
Note: you may need to restart the kernel to use updated packages.
pip install theano
Collecting theano
Downloading Theano-1.0.5.tar.gz (2.8 MB)
Requirement already satisfied: numpy>=1.9.1 in d:\programdata\anaconda3\lib\site-packages (from theano) (1.18.5)
Requirement already satisfied: scipy>=0.14 in d:\programdata\anaconda3\lib\site-packages (from theano) (1.5.0)
Requirement already satisfied: six>=1.9.0 in d:\programdata\anaconda3\lib\site-packages (from theano) (1.15.0)
Building wheels for collected packages: theano
Building wheel for theano (setup.py): started
Building wheel for theano (setup.py): finished with status 'done'
Created wheel for theano: filename=Theano-1.0.5-py3-none-any.whl size=2668111 sha256=a130614a0e49ddc54c21463502163b1d087e8ff6fce7af3d85265a23a089e5ca
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\84\cb\19\235b5b10d89b4621f685112f8762681570a9fa14dc1ce904d9
Successfully built theano
Installing collected packages: theano
Successfully installed theano-1.0.5
Note: you may need to restart the kernel to use updated packages.
pip install pylearn2
Note: you may need to restart the kernel to use updated packages.
ERROR: Could not find a version that satisfies the requirement pylearn2 (from versions: none)
ERROR: No matching distribution found for pylearn2
pip install scrapy
Collecting scrapy
Downloading Scrapy-2.5.0-py2.py3-none-any.whl (254 kB)
Collecting protego>=0.1.15
Downloading Protego-0.1.16.tar.gz (3.2 MB)
Collecting queuelib>=1.4.2
Downloading queuelib-1.6.2-py2.py3-none-any.whl (13 kB)
Collecting w3lib>=1.17.0
Downloading w3lib-1.22.0-py2.py3-none-any.whl (20 kB)
Requirement already satisfied: zope.interface>=4.1.3 in d:\programdata\anaconda3\lib\site-packages (from scrapy) (4.7.1)
Collecting h2<4.0,>=3.0
Downloading h2-3.2.0-py2.py3-none-any.whl (65 kB)
Collecting Twisted[http2]>=17.9.0
Downloading Twisted-21.7.0-py3-none-any.whl (3.1 MB)
Requirement already satisfied: pyOpenSSL>=16.2.0 in d:\programdata\anaconda3\lib\site-packages (from scrapy) (19.1.0)
Collecting itemloaders>=1.0.1
Downloading itemloaders-1.0.4-py3-none-any.whl (11 kB)
Collecting itemadapter>=0.1.0
Downloading itemadapter-0.4.0-py3-none-any.whl (10 kB)
Requirement already satisfied: cryptography>=2.0 in d:\programdata\anaconda3\lib\site-packages (from scrapy) (2.9.2)
Collecting parsel>=1.5.0
Downloading parsel-1.6.0-py2.py3-none-any.whl (13 kB)
Collecting PyDispatcher>=2.0.5; platform_python_implementation == "CPython"
Downloading PyDispatcher-2.0.5.tar.gz (34 kB)
Requirement already satisfied: lxml>=3.5.0; platform_python_implementation == "CPython" in d:\programdata\anaconda3\lib\site-packages (from scrapy) (4.5.2)
Collecting service-identity>=16.0.0
Downloading service_identity-21.1.0-py2.py3-none-any.whl (12 kB)
Collecting cssselect>=0.9.1
Downloading cssselect-1.1.0-py2.py3-none-any.whl (16 kB)
Requirement already satisfied: six in d:\programdata\anaconda3\lib\site-packages (from protego>=0.1.15->scrapy) (1.15.0)
Requirement already satisfied: setuptools in d:\programdata\anaconda3\lib\site-packages (from zope.interface>=4.1.3->scrapy) (49.2.0.post20200714)
Collecting hpack<4,>=3.0
Downloading hpack-3.0.0-py2.py3-none-any.whl (38 kB)
Collecting hyperframe<6,>=5.2.0
Downloading hyperframe-5.2.0-py2.py3-none-any.whl (12 kB)
Collecting twisted-iocpsupport~=1.0.0; platform_system == "Windows"
Downloading twisted_iocpsupport-1.0.2-cp38-cp38-win_amd64.whl (45 kB)
Collecting constantly>=15.1
Downloading constantly-15.1.0-py2.py3-none-any.whl (7.9 kB)
Collecting Automat>=0.8.0
Downloading Automat-20.2.0-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: attrs>=19.2.0 in d:\programdata\anaconda3\lib\site-packages (from Twisted[http2]>=17.9.0->scrapy) (19.3.0)
Requirement already satisfied: typing-extensions>=3.6.5 in d:\programdata\anaconda3\lib\site-packages (from Twisted[http2]>=17.9.0->scrapy) (3.7.4.2)
Collecting incremental>=21.3.0
Downloading incremental-21.3.0-py2.py3-none-any.whl (15 kB)
Collecting hyperlink>=17.1.1
Downloading hyperlink-21.0.0-py2.py3-none-any.whl (74 kB)
Collecting priority<2.0,>=1.1.0; extra == "http2"
Downloading priority-1.3.0-py2.py3-none-any.whl (11 kB)
Collecting jmespath>=0.9.5
Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in d:\programdata\anaconda3\lib\site-packages (from cryptography>=2.0->scrapy) (1.14.0)
Collecting pyasn1-modules
Downloading pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
Collecting pyasn1
Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Requirement already satisfied: idna>=2.5 in d:\programdata\anaconda3\lib\site-packages (from hyperlink>=17.1.1->Twisted[http2]>=17.9.0->scrapy) (2.10)
Requirement already satisfied: pycparser in d:\programdata\anaconda3\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.0->scrapy) (2.20)
Building wheels for collected packages: protego, PyDispatcher
Building wheel for protego (setup.py): started
Building wheel for protego (setup.py): finished with status 'done'
Created wheel for protego: filename=Protego-0.1.16-py3-none-any.whl size=7769 sha256=09862b6d4cc8f606915c984c6e3e588797c7fd88025a407dac533b94a3cec19f
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\91\64\36\bd0d11306cb22a78c7f53d603c7eb74ebb6c211703bc40b686
Building wheel for PyDispatcher (setup.py): started
Building wheel for PyDispatcher (setup.py): finished with status 'done'
Created wheel for PyDispatcher: filename=PyDispatcher-2.0.5-py3-none-any.whl size=12552 sha256=b879c08525849a891960f42485ebc24dc75acb3961375350dbaabe0cdc46f259
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\d1\d7\61\11b5b370ee487d38b5408ecb7e0257db9107fa622412cbe2ff
Successfully built protego PyDispatcher
Installing collected packages: protego, queuelib, w3lib, hpack, hyperframe, h2, twisted-iocpsupport, constantly, Automat, incremental, hyperlink, priority, Twisted, jmespath, cssselect, parsel, itemadapter, itemloaders, PyDispatcher, pyasn1, pyasn1-modules, service-identity, scrapy
Successfully installed Automat-20.2.0 PyDispatcher-2.0.5 Twisted-21.7.0 constantly-15.1.0 cssselect-1.1.0 h2-3.2.0 hpack-3.0.0 hyperframe-5.2.0 hyperlink-21.0.0 incremental-21.3.0 itemadapter-0.4.0 itemloaders-1.0.4 jmespath-0.10.0 parsel-1.6.0 priority-1.3.0 protego-0.1.16 pyasn1-0.4.8 pyasn1-modules-0.2.8 queuelib-1.6.2 scrapy-2.5.0 service-identity-21.1.0 twisted-iocpsupport-1.0.2 w3lib-1.22.0
Note: you may need to restart the kernel to use updated packages.
pip install jieba
Collecting jieba
Downloading jieba-0.42.1.tar.gz (19.2 MB)
Building wheels for collected packages: jieba
Building wheel for jieba (setup.py): started
Building wheel for jieba (setup.py): finished with status 'done'
Created wheel for jieba: filename=jieba-0.42.1-py3-none-any.whl size=19314481 sha256=75f6fc7ea135b0897716ac7e54557e833819ce500e3ea11e8ab8267795b0532b
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\ca\38\d8\dfdfe73bec1d12026b30cb7ce8da650f3f0ea2cf155ea018ae
Successfully built jieba
Installing collected packages: jieba
Successfully installed jieba-0.42.1
Note: you may need to restart the kernel to use updated packages.
'''尝试下写注释的感觉'''import numpy as npimport mathimport random'''#生成随机函数def random_number(a,b): return (b-a)*random.random+a '''#生成矩阵def makwmatrix(m,n,fill =0.0): a =[] for i in range(20): a.append([fill]*n) return a