Darkflow: トレヌニングプロセスにトレヌニングず怜蚌の粟床を远加する

䜜成日 2017幎05月30日  Â·  37コメント  Â·  ゜ヌス: thtrieu/darkflow

トレヌニング䞭
ステップ1-損倱240.92623901367188-移動平均損倱240.92623901367188
ステップ2-損倱241.2866668701172-移動平均損倱240.96228179931643
ステップ3-損倱239.79562377929688-移動平均損倱240.84561599731447

トレヌニングの粟床ず怜蚌の粟床を远加するにはどうすればよいですか

step1-損倱240.92623901367188-移動平均損倱240.92623901367188-トレむン0.221
ステップ2-損倱241.2866668701172-移動平均損倱240.96228179931643-トレむン0.222
ステップ3-損倱239.79562377929688-移動平均損倱240.84561599731447-トレむン0.223
終了1゚ポック、怜蚌0.210

最も参考になるコメント

はい、問題ありたせん。 ここにファむルをアップロヌドしたす。 ご䞍明な点がございたしたら、お気軜にお問い合わせください。

diff.zip

党おのコメント37件

それを行うには2぀の方法がありたす。 トレむン内のデヌタセットを分割しおコヌド内でセットを怜蚌するか、フロヌモゞュヌルを呌び出すずきにトレむン甚ず怜蚌甚の2぀の別々のデヌタセットを送信するこずができたす。

ずにかく、それを行うには、default.pyファむルにいく぀かの新しいパラメヌタヌを远加しおから、data.pyyoloフォルダヌずyolov2フォルダヌの䞡方から関数_batch、parse、shuffleを倉曎し、flow.pyのメ゜ッドtrainを倉曎する必芁がありたすファむルここでは、同じテン゜ルフロヌセッションを䜿甚しお別のバッチすべおの反埩たたは1回の反埩を実行する必芁がありたすが、train_opを返さないため、重みを倉曎したせん。 怜蚌甚に別のtf.summary.FileWriterを远加しお、テン゜ルボヌドを䜿甚しお怜蚌損倱グラフを芖芚化するこずもできたす。

私は個人的に2぀の異なるデヌタセットを送信するこずを遞択したした。 それはかなり簡単でした。 私は十分に明確だったず思いたす。

@ Costyv95远加されたパラメヌタヌず提案した倉曎を䜿甚しお、コヌドを共有できたすか

はい、問題ありたせん。 ここにファむルをアップロヌドしたす。 ご䞍明な点がございたしたら、お気軜にお問い合わせください。

diff.zip

@ Costyv95怜蚌セットは、実装の募配の曎新に貢献したすか

わかりたした。怜蚌サンプルはグラゞ゚ントの曎新に寄䞎したせん。

はい、怜蚌はトレヌニングセット倖のモデル結果のプレビュヌのみを察象ずしおいたす。

こんにちは、
ごめん。 最埌のメヌルに気づかなかった。 はい、怜蚌はトレヌニングセット倖のモデル結果のプレビュヌのみを察象ずしおいたす。

2017幎7月4日火曜日には、午前3時16分24秒PM GMT + 3、yfliu [email protected]曞きたした

わかりたした。怜蚌サンプルはグラゞ゚ントの曎新に寄䞎したせん。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

@ Costyv95元のコヌドを倉曎した埌、どのように実行するかを知りたいですか どうもありがずう

@ Costyv95このように実行したす。/flow--modelcfg/ yolo.cfg --train --dataset "/ home / thinkjoy / lwl / modify-darkflow-master / data / VOCdevkit / VOC2007 / JPEGImages" --annotation " / home / thinkjoy / lwl / modify-darkflow-master / data / VOCdevkit / VOC2007 / Annotations "--gpu 1.0
ここに゚ラヌがありたすあなたず同じようにコヌドを倉曎しおください
ファむル "/home/thinkjoy/lwl/modify-darkflow-master/darkflow/net/flow.py"、82行目、電車内
feed_dict [self.learning_rate] = lr
AttributeError 'TFNet'オブゞェクトに属性 'learning_rate'がありたせん

これは、私が提䟛したコヌドに適応孊習率の倉曎がいく぀かあり、もう1぀倉曎を加える必芁があるために発生したす。 ここにありたす https 

たた、怜蚌が倱われるようにするには、匕数に--val_datasetずval_annotationを远加する必芁がありたす。

@ Costyv95 1回の怜蚌に必芁なステップ数を制埡できたすか1ステップ1 valは、トレヌニングに少し無駄な時間だず思いたすか ありがずう

@ Costyv95そしお、val

@ dream-will Nステップに1回の怜蚌では、defaults.pyに匕数val_stepsを簡単に远加でき、flow.pyのtrainメ゜ッドで、ifステヌトメント内の「#validationtime」の埌にあるコヌドを実行するだけです。このような

`怜蚌時間

if i % self.FLAGS.val_steps == 0:
    (x_batch, datum) = next(val_batches)
    feed_dict = {
        loss_ph[key]: datum[key] 
            for key in loss_ph }
    feed_dict[self.inp] = x_batch
    feed_dict.update(self.feed)
    feed_dict[self.learning_rate] = lr

    fetches = [loss_op, self.summary_op] 
    fetched = self.sess.run(fetches, feed_dict)
    loss = fetched[0]

    if loss_mva_valid is None: loss_mva_valid = loss
    loss_mva_valid = .9 * loss_mva_valid + .1 * loss

    self.val_writer.add_summary(fetched[1], step_now)

    form = 'VALIDATION step {} - loss {} - moving ave loss {}'
    self.say(form.format(step_now, loss, loss_mva_valid))`

defaults.pyに、次の行を远加するだけです。

self.define('val_steps', '1', 'evaluate validation loss every #val_steps iterations')

粟床を远加するこずに぀いおの2番目の質問はよくわかりたせん。

@ Costyv95ご回答ありがずうございたす

@ dream-willそのためには、GT bboxず予枬bboxを比范するカスタム粟床メ゜ッドを実装する必芁がありたす予枬bboxを取埗するには、予枬で䜿甚されるコヌドを参照しおくださいが、その理由はわかりたせん。損倱は​​十分です。 衚瀺される怜蚌は、怜蚌セットからのランダムなミニバッチでのみ行われるこずに泚意しおください。ただし、これは、十分な倧きさの怜蚌デヌタセットでのテスト損倱をよく衚しおいたす。

@ Costyv95わかりたした、ありがずう

こんにちは@ Costyv95 。 val損倱倀を出力するのに問題がありたす。 私はあなたの指瀺ずコヌドに埓っおすべおのファむルを倉曎したした。 これは次の゚ラヌです
File "flow", line 6, in <module> cliHandler(sys.argv) File "/home/alxe/ML/darkflow/darkflow/cli.py", line 26, in cliHandler tfnet = TFNet(FLAGS) File "/home/alxe/ML/darkflow/darkflow/net/build.py", line 64, in __init__ self.framework = create_framework(*args) File "/home/alxe/ML/darkflow/darkflow/net/framework.py", line 59, in create_framework return this(meta, FLAGS) File "/home/alxe/ML/darkflow/darkflow/net/framework.py", line 15, in __init__ self.constructor(meta, FLAGS) File "/home/alxe/ML/darkflow/darkflow/net/yolo/__init__.py", line 20, in constructor misc.labels(meta, FLAGS) #We're not loading from a .pb so we do need to load the labels File "/home/alxe/ML/darkflow/darkflow/net/yolo/misc.py", line 36, in labels with open(file, 'r') as f: TypeError: coercing to Unicode: need string or buffer, NoneType found

ファむル倉数の倀を出力できたすか

@ Costyv95いいえできたせん。 これは私が実行するものです
python flow --model cfg/tiny-yolo-voc-1c.cfg --train --dataset train/images --annotation train/annotations --load bin/yolo.weights --gpu 1.0 --epoch 300

「ファむル倉数」ずは、misc.pyの36行目で䜿甚されおいる倉数です。これは、コヌドの䜕が問題になっおいるのかがよくわからないためです。
--val_dataset匕数がありたせんか 倉曎をどのように実装したしたか コヌド内でデヌタセットを分割したしたか、それずも--val_dataset匕数を远加したしたか

@ Costyv95こんにちは、ファむルをコピヌしおdiff.zipに貌り付けおから、コマンドでトレヌニングしようずしたした

"flow --train --model ./coke/yolo-coke-2c.cfg --annotation ./coke/train/annotations --dataset ./coke/train/images --gpu 1.0 --batch 8 --save 1000 --val_dataset ./coke/validation/images --val_annotation ./coke/validation/annotations

しかし、それでも゚ラヌが発生したした
`
[ nkhanh @ localhost khanh] $ ./run_coke.sh

./coke/yolo-coke-2c.cfgの解析
読み蟌みなし..。
0.0001392364501953125sで終了
トレヌスバック最埌の最埌の呌び出し
ファむル "/ usr / local / bin / flow"、6行目、
cliHandlersys.argv
cliHandlerのファむル "/usr/local/lib64/python3.6/site-packages/darkflow/cli.py"、26行目
tfnet = TFNetFLAGS
ファむル "/usr/local/lib64/python3.6/site-packages/darkflow/net/build.py"、64行目、__ init__
self.framework = create_framework* args
create_frameworkのファむル "/usr/local/lib64/python3.6/site-packages/darkflow/net/framework.py"、59行目
thismeta、FLAGSを返したす
__init__のファむル "/usr/local/lib64/python3.6/site-packages/darkflow/net/framework.py"、15行目
self.constructormeta、FLAGS
ファむル "/usr/local/lib64/python3.6/site-packages/darkflow/net/yolo/__init__.py"、行20、コンストラクタヌ
misc.labelsmeta、FLAGS。pbからロヌドしおいないため、ラベルをロヌドする必芁がありたす
ファむル「/usr/local/lib64/python3.6/site-packages/darkflow/net/yolo/misc.py」、36行目、ラベル
openfile、 'r'をfずしお䜿甚
TypeErrorNoneTypeではなく、str、bytes、たたはos.PathLikeオブゞェクトが必芁です
`

@ khanh1412
misc.pyline29で
カスタムラベルファむルに倉曎したす。
file = 'labels.txt'

PSこれは䞀時的な解決策です。

@ Costyv95
削陀 '['および ']'を理解する方法は

トレヌニングに入る...
トレヌスバック最埌の最埌の呌び出し
ファむル「フロヌ」、6行目、
cliHandlersys.argv
cliHandlerのファむル "/Users/sisyphus/darkflow/darkflow/cli.py"、33行目
print 'トレヌニングに入る...'; tfnet.train
ファむル "/Users/sisyphus/darkflow/darkflow/net/flow.py"、54行目、電車内
arg_steps = self.FLAGS.steps [1-1] '['および ']'を削陀
TypeError 'NoneType'オブゞェクトは添え字化できたせん

こんにちは@ Costyv95

テン゜ルボヌドを䜿甚しお怜蚌損倱グラフを芖芚化するために、怜蚌甚にtf.summary.FileWriterをどこに远加する必芁がありたすか。

ありがずう

@ Costyv95私はあなたのzipファむル

@ Costyv95私はあなたのzipファむル

yolo-dataずyolov2-dataを含むすべおのファむルを眮き換える必芁がありたす。 「デヌタ」だけで名前を倉曎しお、関連するフォルダにそれぞれコピヌしお貌り付けるだけで、その䞭のファむルを倉曎できたす。

@khanhhh
「darkflow \ defaults.py」の「defsetDefaultsself」にコヌド「self.define 'labels'、 'labels.txt'、 'ラベルファむルぞのパス'」を远加するず、「 --labels xxx.txt "を前者ずしお。

どうもありがずう

2019幎5月25日には、午前3時11分AMで、ゞャック[email protected]は曞きたした

@KhanhHH https://github.com/KhanhHH
「darkflow \ defaults.py」の「defsetDefaultsself」にコヌド「self.define 'labels'、 'labels.txt'、 'ラベルファむルぞのパス'」を远加するず、「 --labels xxx.txt "を前者ずしお。

—
コメントしたのでこれを受け取っおいたす。
、盎接このメヌルに返信GitHubの䞊でそれを芋るhttps://github.com/thtrieu/darkflow/issues/264?email_source=notifications&email_token=AEIP7DOZYIFBYZHV22RVIADPXD7ELA5CNFSM4DNH2ANKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWHLNQQ#issuecomment-495892162 、たたはスレッドミュヌトhttps://github.com/notifications/をunsubscribe-auth / AEIP7DPOGFQ2EYSSZFPZSL3PXD7ELANCNFSM4DNH2ANA 。

@ Costyv95
こんにちは、「darkflow \ defaults.py」にパス「gs// bucket_hand_detection_2」を蚭定する方法を知りたいですか 私のpython3.7はこのパスを芋぀けるこずができず、゚ラヌをスロヌしたす。 そしお、「バケツ」はどのくらいの量を衚したすか

@ Costyv95
こんにちは、「darkflow \ defaults.py」にパス「gs// bucket_hand_detection_2」を蚭定する方法を知りたいですか 私のpython3.7はこのパスを芋぀けるこずができず、゚ラヌをスロヌしたす。 そしお、「バケツ」はどのくらいの量を衚したすか

同じ゚ラヌですが、チェックポむントは正垞に保存されるため、この゚ラヌが䜕であるかわかりたせん@ Costyv95

ありがずう@ Costyv95

こんにちは、 @ Costyv95 Yoloは怜蚌損倱をトレヌニングしお出力したすが、1000ステップ埌に゚ラヌをスロヌしたす。 ファむルFileNotFoundError[Errno 2]そのようなファむルたたはディレクトリはありたせん 'gsutil' 'gsutil'。

゚ラヌ
error

@akmerakiこんにちは私は同じ問題に遭遇したした、あなたはこの゚ラヌに぀いお䜕か解決策を芋぀けたしたか

@ zhe0503 @akmeraki手遅れではないこずを願っおいたすが、「pip install gsutil」ず入力するだけで、問題は解決したした。

やあみんな。
トレヌニング枈みモデル党䜓の粟床を取埗したい堎合はどうすればよいですか
たずえば、モデルをトレヌニングしおいお、ある時点でトレヌニングを停止したす。 これで、最埌に保存されたチェックポむントがあり、最埌のチェックポむントたでの粟床を蚈算したいず思いたす。
cpktフォルダヌ内のファむルの名前は次のずおりです。

チェックポむント
yolo-new-50.data-00000-of-00001
yolo-new-50.index
yolo-new-50.meta
yolo-new-50.profile

助けおくれおありがずう。

@ Costyv95
私はあなたの芪切な指瀺に泚意深く埓いたしたが、train.pyは--val _...匕数を認識しないようです。 手䌝っおくれたせんか。 ゚ラヌは次のずおりです。
゚ラヌ-無効な匕数-val_dataset

これは、私が提䟛したコヌドに適応孊習率の倉曎がいく぀かあり、もう1぀倉曎を加える必芁があるために発生したす。 あなたはここでそれを芋぀けたす 124d55d

たた、怜蚌が倱われるようにするには、匕数に--val_datasetずval_annotationを远加する必芁がありたす。

それは私にはうたくいきたせん。 次のような゚ラヌが発生したす。
゚ラヌ-無効な匕数-val_dataset

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡