tensorflow - 如何在 TensorFlow 中正确定义包含形状操作的模型/层?
问题描述
当我的图层需要形状操作(如重塑、获取输入的形状)时,我遇到了一些不同的布局失败问题。我小心翼翼地用 tensorflow 操作包裹了这些操作,tf.shape(x)
并使用tf.gather_nd()
. 但仍然以某种方式得到一些像这样的错误:
layout failed: Invalid argument: MutableGraphView::SortTopologically error: detected edge(s) creating cycle(s)...
通常有很多我不知道什么图层信息:
...
dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/
while/dormand_prince/while/body/_140529/dormand_princeGradients_13/while/dormand_prince/while/advance_to_solution_time/while/exit/_254210' -> 'dorman
d_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prince/while/body/_140529/dormand_princeGradients_13/while/dormand_pr
ince/while/advance_to_solution_time/while/LoopExecuted/_254425', 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dorma
nd_prince/while/next_iteration/_141777-0-0-TransposeNCHWToNHWC-LayoutOptimizer' -> 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradie
nts_13/while/dormand_prince/while/merge/_140901', 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prince/while
/exit/_141485' -> 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/IdentityN', 'dormand_princeGradients_13/while/body/_
39932/dormand_princeGradients_13/while/dormand_prince/while/exit/_141485' -> 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13
/while/dormand_prince/while/LoopExecuted/_141734', 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prince/whil
e/body/_140529/dormand_princeGradients_13/while/dormand_prince/while/advance_to_solution_time/while/exit/_254227' -> 'dormand_princeGradients_13/whil
e/body/_39932/dormand_princeGradients_13/while/dormand_prince/while/body/_140529/dormand_princeGradients_13/while/dormand_prince/while/advance_to_sol
ution_time/while/LoopExecuted/_254425', 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prince/while/next_iter
ation/_141794-0-0-TransposeNCHWToNHWC-LayoutOptimizer' -> 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prin
ce/while/merge/_140918', 'dormand_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/dormand_prince/while/exit/_141502' -> 'dorman
d_princeGradients_13/while/body/_39932/dormand_princeGradients_13/while/IdentityN',
...
将 NHWC 转换为 NCHW 时似乎遇到了一些麻烦。它可以通过设置来解决,
tf.config.optimizer.set_experimental_options({'layout_optimizer': False})
但是当层需要修改张量的形状时,是否还有其他解决方案layout failed
或者是否有一些规则可以遵循?
解决方案
推荐阅读
- android - 我已经改变了重音的颜色,但它不适用于 webview
- python - 给定 argparse 参数的选择,我可以为它们使用快捷方式吗?
- json - 如何使用 SwiftyJson 循环 Json
- hive - Hive 分区表条目
- dart - NetworkImage 正在缓存旧图像
- oracle - 在 docker 容器中将 Oracle 作为服务启动
- javascript - 基于 3 下拉列表和查找表的计算
- graph - 如何在 Neo4J 中导入位于不同路径的数据库?
- sql-server - 在 SQL Server Business Intelligent Studio 2008(SSIS)中编写 BIMLScript 时 Intellisense 无法正常工作
- python-3.x - pandas wide_to_long 在列名中带有浮点数