【发布时间】:2020-03-18 16:10:22
【问题描述】:
我正在尝试将具有 10 个内核 (output_dim = (None, 14, 14, 3, 10)) 的 keras Conv3D 层的输出重塑为所需的输出 (None, 14, 14, 30, 1) 所以我可以对所有组合的内核执行另一个 3D 卷积。我想在重塑的张量中保留前 10 个内核的空间关系/顺序,就像将它们“粘贴”在一起一样。
由于 keras.layers.reshape 使用 'row-major c-style' 来重塑张量,我会在这里放松内核的顺序。关于如何将 numpy.reshape 和 numpy.permutate 用于 numpy 矩阵,很容易有一个全面的解释,并假设 keras 将类似地工作,因为我也可以使用 keras.layers.permutate。问题是,在用 keras.layers.reshape 重塑以保留顺序之前,我根本无法理解在这种情况下我需要什么排列。
Intuition and idea behind reshaping 4D array to 2D array in NumPy
我总是可以对张量进行切片和连接,但这需要更多的 keras.layers 并减慢我的程序。非常感谢 keras.layers.Permutate() --> keras.layers.Reshape() 的“花式”组合!
【问题讨论】:
-
提问时尽量具体。尝试给出一个“可重现”的示例stackoverflow.com/questions/5963269/… 通过使用通用数据集并显示您的代码,这对所有人来说都更容易。所以。最好用于特定的代码问题,而不是让其他人编写代码的地方。先试试吧……
标签: python tensorflow keras permutation reshape