1

現在、Keras を使用したレイヤー単位のトレーニング モデルの実装を学習しています。私のソリューションは複雑で時間がかかります。誰かが簡単な方法でそれを行うための提案をしてもらえますか? また、誰かが Keras のトポロジ、特に 間の関係nodes.outbound_layer、およびそれらがテンソルとnodes.inbound_layerどのように関連付けられたかを説明できますか? githubのトポロジ ソース コードから、次のことについてかなり混乱しています。input_tensorsoutput_tensors

input_tensors[i] == inbound_layers[i].inbound_nodes[node_indices[i]].output_tensors[tensor_indices[i]]

inbound_nodesを含む理由はoutput_tensors、それらの間の関係について明確ではありません.... の特定の位置にあるレイヤーを削除したい場合、API model最初に何を削除する必要がありますか? また、ある場所にレイヤーを追加する場合、最初に何をすればよいですか?

これが、レイヤーごとのトレーニング モデルに対する私のソリューションです。私は Sequential モデルでそれを行うことができ、今では実装しようとしていAPI modelます:

これを行うには、前のトレーニングを終了してから新しいレイヤーを追加し、再コンパイル ( model.compile()) および再適合 ( model.fit()) するだけです。

Keras モデルには出力レイヤーが必要なので、常に出力レイヤーを追加します。その結果、新しいレイヤーを追加するたびに、出力レイヤーを削除してから追加し直す必要があります。これは を使用して実行できます。model.pop()この場合modelkeras.Sequential()モデルである必要があります。

このSequential()モデルは、を含む多くの便利な機能をサポートしていますmodel.add(layer)。ただし、モデル API: を使用してカスタマイズされたモデルの場合model=Model(input=...., output=....)、それらpop()またはadd()関数はサポートされておらず、実装に時間がかかり、不便な場合があります。

4

0 に答える 0