我正在尝试在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/

    10-09 20:32