如何在Keras中翻转张量?

Per*_*iin 2 flip keras tensorflow tensor

例如:我有一个具有形状的张量,(5,10)我想返回一个具有形状的张量,(5,10)但是第一个元素现在应该是最后一个元素。因此[1,2,3,4,5]变得[5,4,3,2,1][[1,2,3,4,5],[2,3,4,5,6]][[2,3,4,5,6],[1,2,3,4,5]]

如果有关系,我正在使用tensorflow后端。

Dan*_*ler 5

使用Keras后端,可以使用该reverse功能。

import keras.backend as K

flipped = K.reverse(x,axes=0)
Run Code Online (Sandbox Code Playgroud)

为了在图层中使用它,您可以创建一个Lambda图层:

from keras.layers import *
layer = Lambda(lambda x: K.reverse(x,axes=0),output_shape=(shape of x))
Run Code Online (Sandbox Code Playgroud)

(如果是顺序层model.add(layer),则为功能性API模型,output = layer(input)

  • 顺便说一句,也许你应该使用 `axes=1`。因为“0”是批次维度,它会反转您的示例序列。`1` 是你通常在 keras 中定义的第一个维度,它将反转**每个示例**的第一个维度。(Keras 不要求您在形状中定义批量大小)。 (2认同)