gpt4 book ai didi

python-3.x - 如何选择keras密集层的前k个元素?

转载 作者:行者123 更新时间:2023-12-01 12:08:17 24 4
gpt4 key购买 nike

我正在尝试执行 k-max pooling为了选择top-k具有形状的密集元素 (None, 30) .我试过 MaxPooling1D层,但它不起作用,因为 keras 池化层至少需要一个 2d 输入形状。我正在使用以下 Lambda层,但出现以下错误:

layer_1.shape
(None, 30)
layer_2 = Lambda(lambda x: tf.nn.top_k(x, k=int(int(x.shape[-1])/2),
sorted=True,
name="Top_k_final"))(layer_1)

Error: File "/usr/local/lib/python3.5/dist-packages/keras/engine/base_layer.py", line 474, in call output_shape = self.compute_output_shape(input_shape) File "/usr/local/lib/python3.5/dist-packages/keras/layers/core.py", line 652, in compute_output_shape return K.int_shape(x) File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 591, in int_shape return tuple(x.get_shape().as_list()) AttributeError: 'TopKV2' object has no attribute 'get_shape'

最佳答案

基于 this example ,我解决了这个问题。事实上,我通过添加 .values 解决了这个问题。从 tf.nn.top_k 中获取张量值, 如下。但我不确定我的解决方案是否正确。

layer_2 = Lambda(lambda x: tf.nn.top_k(x, k=int(int(x.shape[-1])/2),
sorted=True,
name="Top_k_final").values)(layer_1)

关于python-3.x - 如何选择keras密集层的前k个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54458202/

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