DL之BP:利用乘法层/加法层(forward+backward)算法结合计算图(CG)求解反向求导应用题

简介: DL之BP:利用乘法层/加法层(forward+backward)算法结合计算图(CG)求解反向求导应用题

利用乘法层(forward+backward)算法结合计算图(CG)求解反向求导应用题


实现购买2个苹果


输出结果

image.png




CG思路


image.png



实现代码


apple = 100

apple_num = 2

tax = 1.1

apple_price = mul_apple_layer.forward(apple, apple_num)

price = mul_tax_layer.forward(apple_price, tax)

dprice = 1

dapple_price, dtax = mul_tax_layer.backward(dprice)

dapple, dapple_num = mul_apple_layer.backward(dapple_price)

print('仅使用乘法层:购买2个苹果和消费税的例子')

print("price:", int(price))

print("dApple:", dapple)

print("dApple_num:", int(dapple_num))

print("dTax:", dtax)



利用加法层(forward+backward)算法结合计算图(CG)求解反向求导应用题


实现购买2个苹果和3个橘子的例子


输出结果

image.png





CG思路



image.png


实现代码


apple = 100

apple_num = 2

orange = 150

orange_num = 3

tax = 1.1

apple_price = mul_apple_layer.forward(apple, apple_num)                # (1)

orange_price = mul_orange_layer.forward(orange, orange_num)            # (2)

all_price = add_apple_orange_layer.forward(apple_price, orange_price)  # (3)

price = mul_tax_layer.forward(all_price, tax)                          # (4)

dprice = 1

dall_price, dtax = mul_tax_layer.backward(dprice)                          # (4)

dapple_price, dorange_price = add_apple_orange_layer.backward(dall_price)  # (3)

dorange, dorange_num = mul_orange_layer.backward(dorange_price)            # (2)

dapple, dapple_num = mul_apple_layer.backward(dapple_price)                # (1)

print('混合使用加法层和乘法层,实现购买2个苹果和3个橘子的例子')

print("price:", int(price))

print("dApple:", dapple)

print("dApple_num:", int(dapple_num))

print("dOrange:", dorange)

print("dOrange_num:", int(dorange_num))

print("dTax:", dtax)



相关文章
|
1天前
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
29 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
1天前
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
1天前
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
6 0
|
1天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1
|
1天前
|
机器学习/深度学习 算法 API
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
7 0
|
1天前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
1天前
|
机器学习/深度学习 算法
理解并应用机器学习算法:决策树
【5月更文挑战第12天】决策树是直观的分类与回归机器学习算法,通过树状结构模拟决策过程。每个内部节点代表特征属性,分支代表属性取值,叶子节点代表类别。构建过程包括特征选择(如信息增益、基尼指数等)、决策树生成和剪枝(预剪枝和后剪枝)以防止过拟合。广泛应用在信贷风险评估、医疗诊断等领域。理解并掌握决策树有助于解决实际问题。
|
1天前
|
机器学习/深度学习 算法
应用规则学习算法识别有毒的蘑菇
应用规则学习算法识别有毒的蘑菇
|
1天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
15 1
|
1天前
|
存储 机器学习/深度学习 算法
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例