形状のある密な要素k-max pooling
を選択するためにを実行しようとしています。レイヤーを試しましたが、kerasプーリングレイヤーには少なくとも2D入力シェイプが必要なため、機能しません。次のレイヤーを使用していますが、次のエラーが発生しました。top-k
(None, 30)
MaxPooling1D
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)
エラー:ファイル "/usr/local/lib/python3.5/dist-packages/keras/engine/base_layer.py"、行474、呼び出しoutput_shape = self.compute_output_shape(input_shape)ファイル "/ usr / local / lib / python3.5 / dist-packages / keras / layers / core.py "、652行目、compute_output_shapeでK.int_shape(x)ファイル" /usr/local/lib/python3.5/dist-packages/keras/backend/ tensorflow_backend.py "、591行目、int_shapeでreturn tuple(x.get_shape()。as_list())AttributeError: 'TopKV2'オブジェクトに属性 'get_shape'がありません
この例に基づいて、私は問題を解決しました。実際、次のように、.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)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加