gpt4 book ai didi

keras - 如何将 keras 中的张量的第一个元素作为图层删除?

转载 作者:行者123 更新时间:2023-12-01 09:21:44 27 4
gpt4 key购买 nike

如何在 keras 中将张量的第一个元素作为层移除?例如:

layer = Input(input_shape=(100,),name='input')
layer = Conv1D(97,kernel_size=10,strides=10)(layer)
layer = >something that removes the first element<(layer)
layer = Flaten()(layer)
model = Model(input,layer)

此模型将有 97*9 输出。 97 来自 Conv 层,每个 conv 过滤器将输出 10 个节点,但这些节点中的第一个将被我正在寻找的层删除。因为 conv 层的形状为 (batch_size,10,97) 我正在寻找一种方法来删除 axis=1 的第一个元素。

我该怎么做呢?我尝试使用 Lambda 层,但我不太清楚如何让它工作。

编辑: 我问这个问题是因为我想做的是如果我有一层形状 (batch_size, x, y) 我想把它转换成形状 (batch_size, 0.5x , 2y) 这样,如果 x 例如是 10,元素 0,2,4,6,81,3,5,7,9 堆叠在一起。现在我正在使用 Maxpooling1D(pool_size=1, strides=2) 生成 0,2,4,6,8。要生成 1,3,5,7,9,我必须在应用最大池化层之前以上述方式从头删除 1 个元素。非常感谢您的宝贵时间!

最佳答案

因为@NadavB 想知道答案:

layer = Input(input_shape=(100,),name='input')
layer = Conv1D(97,kernel_size=10,strides=10)(layer)
layer = Lambda(lambda x : x[:,1:,:])(layer)
layer = Flaten()(layer)
model = Model(input,layer)

希望对你有所帮助:)

关于keras - 如何将 keras 中的张量的第一个元素作为图层删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45494353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com