
# 自定义函数:可以复用的代码,表达算法deff(a,b): #参数 returna*b#返回foriinrange(10): print(f(i,10-i))# 多次调用函数
# 类:封闭的对象,属性(数据)、方法(算法)classPerson: def__init__(self,name):#参数 self.name = name # 属性:类内数据 defsay(self): # 方法:类内自定义函数 s=self.name+"您好!" returnsPerson1=Person('李宁')#定义类的实例print(Person1.say() ) # 调用类的方法Person2=Person('张宁')print(Person2.say() )

importnumpyasnpclassSimpleNeuralNet: def__init__(self, input_size, hidden_size, output_size): #输入层-隐藏层的权重 self.W1 = np.random.randn(input_size, hidden_size) *0.1 print("W1:",self.W1) #隐藏层偏置 self.b1 = np.zeros(hidden_size) print("b1:",self.b1) #隐藏层-输出层权重 self.W2 = np.random.randn(hidden_size, output_size) *0.1 print("W2:",self.W2) #输出层的偏置 self.b2 = np.zeros(output_size) print("b2:",self.b2) print(f"模型初始化各层的神经元数量:{input_size}→{hidden_size}→{output_size}") defsigmoid(self, x):#自定义函数,激活函数 return1/ (1+ np.exp(-x)) defforward(self, x):#自定义函数,前向传播算法 print("输入层输入:", x) hidden_z = np.dot(x,self.W1) +self.b1 # 加权求和+偏置 print("隐藏层输入:", hidden_z) hidden =self.sigmoid(hidden_z) # 激活函数 print("隐藏层输出:", hidden) output_z = np.dot(hidden,self.W2) +self.b2 print("输出层输入:", output_z) output =self.sigmoid(output_z) print("输出层输出:", output) returnoutputmodel = SimpleNeuralNet(3,2,1)# 初始化模型sample_input = np.array([[0.5,0.2,0.9]])# 输入样本,更换输入值实验output = model.forward(sample_input)# 前向传播print("前向传播输出:", output)

