0

私の興味のためにさまざまなオブジェクト検出アルゴリズムを研究しています。 主参照番号Andrej Karpathyのスライドオブジェクト検出slides hereです。R-CNN:分類のためのFCが再学習可能なREPOを探してください

私はいくつかの参考資料、特に自分のデータに記載されているネットワークの一部を直接テストできるようにしたいと考えています(主に車とバイクレースの車載カメラで構成されています)。

のようなレーシングカーの多くのトレーニングインスタンスが存在していなかったので、残念ながら私はすでにいくつかのpretrainedネットワーク(私は少し私のユースケースにヨロを適応させるrepo forked from JunshengFu one、)、を使用しますが、分類精度がかなり悪く、私は推測します私はここでネットワークとを再教育したいと思います。このため式1

は、私はほとんどの問題発見よどこです:

を適切にネットワークの一部を訓練することは、ハードウェア(強力なGPU)または時間Iドンのいずれかが必要です私はちょうど私が訓練できるかどうか疑問に思っていたのでネットワークのいくつかの部分、特に分類ネットワークと、既にが許可されているレポがある場合はです。

ありがとうございました

答えて

0

これは、ネットワークまたは転送学習の細かい調整と呼ばれています。基本的には、見つけたネットワーク(それと同様の問題のドメインを持つ)であれば、データ量に応じてネットワーク全体を微調整したり、一部のレイヤーをフリーズしたり、最後のレイヤーだけをトレーニングしたりすることができます。あなたの場合は、分類を実行する最後に完全に接続されたレイヤー(実際には新しいレイヤーに置き換え、クラス数を満たします)を除いて、ネットワーク全体をフリーズする必要があります。どのライブラリを使うのか分かりませんが、テンソルフローは公式tutorial on transfer-learningです。しかし、それは非常に明確なtbhではない。

ユーザーフレンドリーなチュートリアルをご覧になるには、熱狂的な方からこちらをご覧ください:tutorialここでもコードリポジトリを見つけることができます。 1つの修正が必要です。作成者はネットワーク全体を細かく調整しますが、いくつかのレイヤーをフリーズする場合は、訓練可能な変数のリストを取得し、凍結したいものを削除し、結果リストをオプティマイザは(そう、彼は削除さVARSを無視する)、次のように:

all_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,scope='InceptionResnetV2') 
to_train = all_vars[-6:] // you better specify them by name explicitely, but this still will work 
optimizer = tf.train.AdamOptimizer(lr=0.0001) 
train_op = slim.learning.create_train_op(total_loss,optimizer, variables_to_train=to_train) 

をさらに、tensorflowはとてもモデル動物園(あなたがあなたの目的に使用することができます訓練を受けたモデルの束と転送ラーニング)と呼ばれています。あなたはそれを見つけることができますhere

+0

答えはありがたいですが、段落のいずれも参考にしていません。私は移転の学習が何であるかを知っています。私は既に初期ネット(とはい、テンソルフロー)でそれを行っています。ここでのポイントは、ネットワークがFast R-CNN、Faster R-CNN、Yoloであり、完全に接続されたネットワークを使用して地域ラベルを再学習することによって私を導いたレポが見つかりませんでした。私の質問にもっと文脈を与えてくれてありがとう。 –

関連する問題