码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 《神经网络与深度学习:案例与实践》动手练习1.3


    飞桨AI Studio星河社区-人工智能学习与实训社区

    动手练习1.3

    执行上述算子的反向过程,并验证梯度是否正确。

    1. import math
    2. class Op(object):
    3. def __init__(self):
    4. pass
    5. def __call__(self, inputs):
    6. return self.forward(inputs)
    7. # 前向函数
    8. # 输入:张量inputs
    9. # 输出:张量outputs
    10. def forward(self, inputs):
    11. # return outputs
    12. raise NotImplementedError
    13. # 反向函数
    14. # 输入:最终输出对outputs的梯度outputs_grads
    15. # 输出:最终输出对inputs的梯度inputs_grads
    16. def backward(self, outputs_grads):
    17. # return inputs_grads
    18. raise NotImplementedError
    19. class add(Op):
    20. def __init__(self):
    21. super(add, self).__init__()
    22. def __call__(self, x, y):
    23. return self.forward(x, y)
    24. def forward(self, x, y):
    25. self.x = x
    26. self.y = y
    27. outputs = x + y
    28. return outputs
    29. def backward(self, grads):
    30. grads_x = grads * 1
    31. grads_y = grads * 1
    32. return grads_x, grads_y
    33. class multiply(Op):
    34. def __init__(self):
    35. super(multiply, self).__init__()
    36. def __call__(self, x, y):
    37. return self.forward(x, y)
    38. def forward(self, x, y):
    39. self.x = x
    40. self.y = y
    41. outputs = x * y
    42. return outputs
    43. def backward(self, grads):
    44. grads_x = grads * self.y
    45. grads_y = grads * self.x
    46. return grads_x, grads_y
    47. class exponential(Op):
    48. def __init__(self):
    49. super(exponential, self).__init__()
    50. def forward(self, x):
    51. self.x = x
    52. outputs = math.exp(x)
    53. return outputs
    54. def backward(self, grads):
    55. grads = grads * math.exp(self.x)
    56. return grads
    57. a, b, c, d = 2, 3, 2, 2
    58. multiply_op1 = multiply()
    59. f1=multiply_op1(a,b)
    60. multiply_op2 = multiply()
    61. f2=multiply_op2(c,d)
    62. add_op = add()
    63. f3=add_op(f1,f2)
    64. exp_op = exponential()
    65. f4=exp_op(f3)
    66. print(f4)
    67. val1=exp_op.backward(grads=1)
    68. val2=add_op.backward(val1)
    69. val3=multiply_op1.backward(val2[0])
    70. val4=multiply_op2.backward(val2[0])
    71. print(val3)
    72. print(val4)

  • 相关阅读:
    redis基础与安装
    解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(一)
    java计算机毕业设计仓库管理系统源程序+mysql+系统+lw文档+远程调试
    Linux虚拟内存
    【网络攻防】常见的网络攻防技术——黑客攻防(通俗易懂版)
    shell实例第24讲:zookeeper启动、停止、查看状态脚本
    Godot导出Windows版本图标未更换的问题
    如何通俗理解逻辑回归(Logistic Regression)
    每天分享几个面试题(六)
    Kafka之Broker原理
  • 原文地址:https://blog.csdn.net/m0_74315028/article/details/137976737
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号