tensorflow - 有没有办法测量模型的反向传递?
解决方案
如果您只想快速获得号码,您可以简单地添加
grads = tf.gradients(C, [A, B])
到@Tobias Scheck 的代码来构建梯度计算节点。然后,从原始数字(没有梯度操作)中减去新数字(有梯度操作),以获得估计的失败率。
关于在大型项目中使用此方法的注意事项。该方法使用整个图的静态分析。这有几个问题,包括:
- while 循环中来自 ops 的触发器只会添加一次。
- 将添加从未正常运行的操作(某些 TF 功能可能会在图中留下垃圾操作)。
- 这种分析很大程度上依赖于形状推断。它可能不适用于所有操作。
- 这种分析依赖于可以估计给定操作的触发器的注册函数。可能存在没有此类功能的操作,并且此类功能不能精确模拟您的 TF 将选择执行操作的实际内核完成的触发器。
最好将它与实际运行记录 (RunMetadata) 结合使用,或者使用纯粹基于运行时的方法,例如,我可以使用 TensorFlow 测量单个操作的执行时间吗?,并对结果进行一些过滤/聚合。
推荐阅读
- php - WooCommerce - 澄清邮政/邮政编码验证,以及如何挂钩/覆盖
- windows-server - 返回为 SCManager 设置安全描述符的权限
- reactjs - 向 woocomerce wordpress 商店添加更多产品后,graphql 失败
- where-clause - 两个相同的查询,一个带有 SQL 参数,另一个带有硬编码字符串值,提供不同的结果集
- android - Detekt 版本 1.18.0 与 Gradle 7.1.1、AGP 版本 7.0.0 和 jdk 11 及更高版本不兼容
- angular - 在后端/数据库中获取特定 id
- python - 从邮递员那里设置 GOOGLE_APPLICATION_CREDENTIALS
- regex - 在动态日志中找到“错误”字符串之前如何选择?正则表达式
- python - 如何使用耦合 ODE 实现射击方法
- tensorflow - 使用 LPOT 量化模型时出错