問題タブ [pre-trained-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
31184 参照

tensorflow - 訓練可能な変数を訓練不可能にすることは可能ですか?

スコープにトレーニング可能な変数を作成しました。その後、同じスコープに入り、スコープを に設定し、同じ変数を取得するためにreuse_variables使用しました。get_variableただし、変数の trainable プロパティを に設定できませんFalse。私のget_variable行は次のようなものです:

しかし、変数'weights'はまだ の出力にありtf.trainable_variablesます。

を使用して共有変数のtrainableフラグを設定できますか?Falseget_variable

これを行う理由は、モデルで VGG ネットから事前にトレーニングされた低レベル フィルターを再利用しようとしており、以前のようにグラフを作成し、重み変数を取得し、VGG フィルター値を割り当てたいからです。重み変数に追加し、次のトレーニング ステップでそれらを固定したままにします。

0 投票する
1 に答える
2167 参照

python - Tensorflow で事前トレーニング済みの LSTM モデルの重みを読み込む方法

Tensorflow で事前トレーニング済みの重みを使用して LSTM モデルを実装したいと考えています。これらの重みは、Caffee または Torch から取得できます。ファイル にやなどの
LSTM セルがあることがわかりました。しかし、これらの LSTM セルの事前トレーニング済みの重みを読み込むにはどうすればよいでしょうか。rnn_cell.pyrnn_cell.BasicLSTMCellrnn_cell.MultiRNNCell

0 投票する
1 に答える
3120 参照

python - Tensorflow - 転移学習の実装 (セマンティック セグメンテーション)

私は、自分のデータ (2 つのクラス、したがって、ピクセルごとのバイナリ分類) のセマンティック セグメンテーションのために、CNN アーキテクチャ (事前トレーニング済みの VGG16 モデルを使用した FCN-8s モデル) の実装に取り​​組んでいます。

私がこれをどのように行うつもりかは次のとおりです。

  1. 事前トレーニング済みのモデルに重みをロードします
  2. FCN に変換するための追加の上位レイヤーの追加/削除
  3. 事前トレーニング済みモデルの下位レイヤーをフリーズします (トレーニング フェーズ中に更新しないようにするため)。
  4. 特定のデータセットでネットワークをトレーニングする

これが正しいと仮定すると、テンソルフロー モデルの下位レイヤーをフリーズするにはどうすればよいですか? (特定の実装の詳細を探しています) TensorFlow チュートリアルでのインセプションの再トレーニングを見ましたが、まだよくわかりません。

これは私が念頭に置いているワークフローです:

  1. 既存の事前トレーニング済みモデルでデータを実行し、トレーニングせずに機能出力を抽出します。(どうやって?)

  2. これらの機能の出力を、上位層を含む別のネットワークにフィードし、トレーニングに取り掛かります。

どんな提案も役に立ちます!

そうでなければ、私が間違っているとしたら、これをどのように考えればよいでしょうか?

アップデート:

以下のchasp255の提案を取り上げ、モデルの下位レイヤーを「フリーズ」するためにtf.stop_gradientを使用しようとしました。明らかに、私の実装には何か問題があります。可能な代替/提案?

このモデルは、FCN (セマンティック セグメンテーション用) 論文に基づいて構築されています。logitsモデル アーキテクチャ、つまり機能から抽出し、最初にloss関数に直接入力して、softmax 分類器で最小化します。(ピクセルごとの分類)deconv_1は、形状の[batch, h, w, num_classes] = [1, 750, 750, 2]実装のロジット テンソルです。

次に、これらのグラフ操作を次のように実行します。

このようにトレーニング サイクルを実行すると、損失値の最適化が行われません。これは、tf.stop_gradientOp.

詳細については、以下の私の損失関数:

0 投票する
1 に答える
843 参照

tensorflow - get_collection で使用する tensorflow プレースホルダーの使用方法

そのため、フィード変数に問題があります。エポックにわたってモデルの重みとバイアスをフリーズしたい。次の変数があります。

たとえば、最初の 10 エポックで [wc1, bc1] をトレーニングし、次のエポックで [wc2, bc2] などをトレーニングします。この目的のために、変数コレクションを作成しました。

コレクション名のプレースホルダーを作成します。

次に、オプティマイザーで取得してみます。

フィード データ:

そして、私はエラーが発生します:

では、セッション中にトレーニング変数を変更する方法はありますか?

ありがとう。

0 投票する
1 に答える
1003 参照

python-2.7 - 事前トレーニング済みチェックポイント (.chkpt) と GraphDef (.pb)

Google がテンソルフローでリリースした classify_image_graph_def.pb (inception-2015-12-05.tgz) のような事前トレーニング済みのネットワークを使用して、新しいデータセットの特徴を抽出しようとしています。classify_image_graph_def.pb (inception_v3.pb) を使用して新しいデータセットのフラクチャを抽出するチュートリアルがtransfer_learningにあるので、私はそれに成功しました。

ただし、事前トレーニング済みモデルの新しいリリースでは、tensorflow は Graph_def (例: resnet_v1_152.pb) の代わりにチェック ポイント ファイル (例: resnet_v1_152.ckpt) を提供します。これらのチェックポイント ファイルを使用して、 transfer_learningのように機能を抽出する方法を考えていました。どなたか道順を教えていただけませんか?