我正在尝试在Keras核心层中使用keras.layers.Permute(dims)
。
根据文档:
并给出了以下示例代码,
问题是:(2,1)是做什么的?如果我的输入要素有10个尺寸,并且我需要将第1,3,5个要素的顺序更改为(5,1,3),那么我应该只使用(5,1,3)作为参数值这个功能的“昏暗”?
model = Sequential()
model.add(Permute((2, 1), input_shape=(10, 64)))
# now: model.output_shape == (None, 64, 10)
# note: `None` is the batch dimension
最佳答案
permute函数仅切换轴的位置,dims
参数告诉Keras您希望最终位置如何。例如,如果x
是4维并且形状为(None, 2, 4, 5, 8)
-(此处为批处理大小,则为None),并且如果您指定dims = (3, 2, 1, 4)
,则将执行以下四个步骤:
请记住,索引始于
1
而不是0
。尺寸为零是批次大小。因此,最后,置换层的输出将具有(5, 4, 2, 8)
的形状。函数 np.moveaxis
在NumPy中执行类似的操作。对于您的示例,暗淡应该等于
(5, 2, 1, 4, 3, 6, 7, 8, 9, 10)
。关于python - keras中的Permute函数中的 'dims'参数是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53878219/