ケラスレイヤーの出力を再構築する方法は?

lordof4towers

入力レイヤーの出力形状を再構築したいのですが、たとえば(None、42)の場合、1番目のニューロンから始めて1番目から7番目に進み、次にニューロンを右にスライドさせて2番目から8番目に取ります。など。このようにして、出力レイヤーは形状になります(なし、36、7)。

私はそれを行うためにkeras.layers.Lambda()レイヤーを使用していますが、それは正しく機能しておらず、寸法は私が期待するものではありません。私が書いたコードは次のとおりです。

Inpt_lyr = keras.Input(shape = (42,))
for k in range(42 - 7 + 1):
    F = keras.layers.Lambda(lambda x, i, j: x[:,j : j + i])
    F.arguments ={ 'i' : 7, 'j' : k}
    tmp_rfrm = F(Inpt_lyr)
    lst_rfrm.append(tmp_rfrm)
cnctnt_lyr = keras.layers.merge.Concatenate(axis = 0)(lst_rfrm)
tmp_dns = keras.layers.Dense(3 , activation = 'softmax')(cnctnt_lyr)
tmp_model = Model(Inpt_lyr, tmp_dns)
tmp_model.compile(loss = 'categorical_crossentropy', optimizer = 'adam')
tmp_model.summary()

conct_lyrの形状は(None、36、7)であると思いますが、(None、7)であり、エラーValueError:グラフが切断されました:テンソルTensor( "input_3:0"、shape =(? 、42)、dtype = float32)レイヤー「input_3」。次の前のレイヤーは問題なくアクセスされました:['input_4']

rvinas

あなたのアプローチは私には理にかなっているように見えますが、テンソルは現在バッチ軸に沿って連結されており、この場合は望ましくありません。

ウィンドウをスライドさせながらディメンション1を拡張することをお勧めします。

for k in range(42 - 7 + 1):
    F = keras.layers.Lambda(lambda x, i, j: x[:, None, j: j + i])
    # F(Inpt_lyr).shape=(?, 1, 7)

次に、展開された軸に沿ってテンソルを連結します。

cnctnt_lyr = keras.layers.merge.Concatenate(axis=1)(lst_rfrm)
# cnctnt_lyr.shape=(?, 36, 7)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ケラス、各レイヤーの出力を取得する方法は?

分類Dev

ケラスのLSTMオートエンコーダーでmiddelレイヤーの出力を取得する方法

分類Dev

wacomタブレットドライバーのカーネルを再構築する方法は?

分類Dev

ケラスレイヤー出力を設定することは可能ですか?

分類Dev

スライスレイヤー:他のレイヤーで使用されないスライスされた出力を1つ破棄する方法は?

分類Dev

Go 1.4のアップグレード後にすべてのライブラリを再構築する方法

分類Dev

PythonでカスタムCaffeレイヤーを構築する

分類Dev

Scikit-image用のカスタムAWSLambdaレイヤーを構築する

分類Dev

TensorFlowで固定の重みでレイヤーを構築する

分類Dev

jbuilderで複数のレイヤーを構築する

分類Dev

再帰を使用してスパイラル正方行列を構築する方法は?

分類Dev

Bスプラインサーフェスの4つの側面を4つのBスプライン曲線に再構築する方法は?

分類Dev

Kerasでレイヤーの出力形状を取得する方法は?

分類Dev

Kerasの「TimeDistributed」レイヤーでシーケンスを出力しない方法は?

分類Dev

GCC libstdc ++ C ++標準ライブラリソースを編集および再構築する方法は?

分類Dev

ケラスの最後のレイヤーで単一の変数を入力する方法は?

分類Dev

ケラスの2つのレイヤーの出力を乗算します

分類Dev

ケラで2つのレイヤーを連結する方法は?

分類Dev

ヒストグラムから生データを再構築する方法は?

分類Dev

トレーニング済みのテンソルフローケラスモデルに再スケーリングレイヤー(またはそのことについては任意のレイヤー)を追加する

分類Dev

ドライバー ストアを修復または再構築する

分類Dev

FusionChartsのSQLデータベースを再構築する方法は?

分類Dev

Java:未知のクラスを再構築する方法

分類Dev

ggplotの単一レイヤーをラスタライズする方法は?

分類Dev

(dart)ストリームから特定のクラスインスタンスを更新および再構築する方法は?

分類Dev

read_sqlの後にマルチインデックスデータフレームの階層を再構築する方法は?

分類Dev

行のダミーデータを再構築する方法は?

分類Dev

3番目のパラメーターで決定された順序で2つの画像をマージするレイヤーを構築する方法

分類Dev

Tableau:カスケードパラメータを構築する方法は?

Related 関連記事

  1. 1

    ケラス、各レイヤーの出力を取得する方法は?

  2. 2

    ケラスのLSTMオートエンコーダーでmiddelレイヤーの出力を取得する方法

  3. 3

    wacomタブレットドライバーのカーネルを再構築する方法は?

  4. 4

    ケラスレイヤー出力を設定することは可能ですか?

  5. 5

    スライスレイヤー:他のレイヤーで使用されないスライスされた出力を1つ破棄する方法は?

  6. 6

    Go 1.4のアップグレード後にすべてのライブラリを再構築する方法

  7. 7

    PythonでカスタムCaffeレイヤーを構築する

  8. 8

    Scikit-image用のカスタムAWSLambdaレイヤーを構築する

  9. 9

    TensorFlowで固定の重みでレイヤーを構築する

  10. 10

    jbuilderで複数のレイヤーを構築する

  11. 11

    再帰を使用してスパイラル正方行列を構築する方法は?

  12. 12

    Bスプラインサーフェスの4つの側面を4つのBスプライン曲線に再構築する方法は?

  13. 13

    Kerasでレイヤーの出力形状を取得する方法は?

  14. 14

    Kerasの「TimeDistributed」レイヤーでシーケンスを出力しない方法は?

  15. 15

    GCC libstdc ++ C ++標準ライブラリソースを編集および再構築する方法は?

  16. 16

    ケラスの最後のレイヤーで単一の変数を入力する方法は?

  17. 17

    ケラスの2つのレイヤーの出力を乗算します

  18. 18

    ケラで2つのレイヤーを連結する方法は?

  19. 19

    ヒストグラムから生データを再構築する方法は?

  20. 20

    トレーニング済みのテンソルフローケラスモデルに再スケーリングレイヤー(またはそのことについては任意のレイヤー)を追加する

  21. 21

    ドライバー ストアを修復または再構築する

  22. 22

    FusionChartsのSQLデータベースを再構築する方法は?

  23. 23

    Java:未知のクラスを再構築する方法

  24. 24

    ggplotの単一レイヤーをラスタライズする方法は?

  25. 25

    (dart)ストリームから特定のクラスインスタンスを更新および再構築する方法は?

  26. 26

    read_sqlの後にマルチインデックスデータフレームの階層を再構築する方法は?

  27. 27

    行のダミーデータを再構築する方法は?

  28. 28

    3番目のパラメーターで決定された順序で2つの画像をマージするレイヤーを構築する方法

  29. 29

    Tableau:カスケードパラメータを構築する方法は?

ホットタグ

アーカイブ