乘法类
class MulLyer:
def __init__(self):
self.x = None
self.y = None
def forward(self,x,y):
self.x = x
self.y = y
out = x*y
return out
def backward(self,dout):
dx = dout * self.y
dy = dout * self.x
return dx,dy
加法类
class AddLayer:
def __init__(self):
pass
def forward(self,x,y):
out = x + y
return out
def backward(self,dout):
dx = dout * 1
dy = dout * 1
return dx, dy
苹果实现乘法
apple = 100 tax = 1.1 apple_num = 2 mul_apple_layer = MulLyer() mul_tax_layer = MulLyer() #forword apple_price = mul_apple_layer.forward(apple,apple_num) price = mul_tax_layer.forward(apple_price,tax) #backward dprice = 1 dapple_price,dtax = mul_tax_layer.backward(dprice) dapple,dapple_num = mul_apple_layer.backward(dapple_price)
实现乘法和加法
from addDemo import * from errordec import * apple = 100 apple_num = 2 orange = 150 orange_num = 3 tax = 1.1 #layer mul_apple_layer = MulLyer() mul_orange_layer = MulLyer() add_apple_orange_layer = AddLayer() mul_tax_layer = MulLyer() #forward apple_price = mul_apple_layer.forward(apple,apple_num) orange_price = mul_orange_layer.forward(orange,orange_num) all_price = add_apple_orange_layer.forward(apple_price,orange_price) price = mul_tax_layer.forward(all_price,tax) #backward dprice = 1 dall_price,dtax = mul_tax_layer.backward(dprice) dapple_price,dorange_price = add_apple_orange_layer.backward(dall_price) dorange,dorange_num = mul_orange_layer.backward(dorange_price) dapple,dapple_price = mul_apple_layer.backward(dapple_price) print(price) print(dapple_num,dapple,dorange,dorange_num,dtax)



