Giter VIP home page Giter VIP logo

Comments (10)

d-ishizuka avatar d-ishizuka commented on July 22, 2024 4

@yoshinori77 さま
@YutaroOgawa さま

ご連絡ありがとうございました。
また、ご返信遅くなり大変申し訳ありません。

いただいたコメントを基に、再度tarファイルのダウンロードおよび解凍を試みました。
その結果、
・VOCのサーバー自体は動いているのに、urllib.request.urlretrieveでtarファイルを
ダウンロードしようとするとうまく落とせないときがある。
・tarファイルがダウンロードできた場合でも、解凍を試みても全て解凍されない場合がある。
(Annotationsファイルしか解凍されていないなど。この時エラーコードは表示されませんでした)

そこで、以下のことを試みました。
・一度VOCのサイトからローカルに.tarファイルを保存する。
・その後、解凍して出てくる5つのファイルそれぞれを再度.tarファイルに圧縮し
Google driveにアップロード
・それぞれの.tarファイルをGoogle colab上で解凍
すると、Annotationsファイルの中で、数個xmlファイルが足りていないようでしたが、
追加して学習を試みると学習が進むようになりました。

この要因について、google colabのドキュメントを読んでみたところ
・google driveのmountは、mountするファイルやファイル数が多くなりすぎると、
google colabで読み出し・処理を行う途中でタイムアウトが起こることがある。
・タイムアウトが起こった場合、再度同じ処理を行うと部分的にキャッシュに溜まるため
うまくいくことがある
との記述がありました。

おそらく私の場合も、解凍を行う途中でタイムアウトがどこかのタイミングで起こり
正しく解凍ができていなかった可能性があります。
また、もしかすると私のネットワーク環境も関係があるかもしれません。

以上長々と申しわけありませんが、おそらく最も大きな問題は
・Google colab/Google driveでは、扱うデータの数が大きすぎると途中でタイムアウトが
起こり、正しく読み込めない・解凍できないことがある
ということだと思います。

解決策としては、
・個別にtarファイルをアップロードして解凍する
・うまくいくまで処理を実行する などで今回は解決されました。

お騒がせしてすみませんでした。
アドバイスいただきありがとうございました。

from pytorch_advanced.

yoshinori77 avatar yoshinori77 commented on July 22, 2024 2

@d-ishizuka さん
私も同じ状況になったのですが、data/VOCtrainval_11-May-2012.tarを削除してからmake_folders_and_data_downloads.ipynbを実行してVOC2012のデータセットを再度ダウンロードし直したらエラーが消え正常に実行できました。

なぜかdata/VOCdevkit/VOC2012/JPEGImagesに画像が不足していたようです。ImageSets/Main/train.txtから取得した訓練用画像のパスに対応する画像が存在しないためエラーが発生したようでした。

from pytorch_advanced.

YutaroOgawa avatar YutaroOgawa commented on July 22, 2024 2

@yoshinori77 さま

貴重なアドバイスありがとうございます。
・VOCの元サイトが落ちている(メンテ中?)ことが多々あり、あまり安定していない?
・ダウンロードデータが大きいのでミスする?(ダウンロードか解凍か?)

かもしれません。

@d-ishizuka さま、いちど、yohinori77さまの手順も試してみていただけますと幸いです。

ありがとうございます。

from pytorch_advanced.

YutaroOgawa avatar YutaroOgawa commented on July 22, 2024 1

@d-ishizuka さま

ご連絡ありがとうございます。

エラーから、248行目
img = cv2.imread(image_file_path) # [高さ][幅][色BGR]
に問題がありそうですね。

本章を前から順番に進めていて、2-2-3_Dataset_DataLoader.ipynb
でエラーが出ていなくて、2-7_SSD_training.ipynbでエラーが出るのは、
なかなか、理由がわかりませんね。

  1. 2-7_SSD_training.ipynbのファイルの場所がフォルダ「data」と同じ階層か?
  2. フォルダutilsとその中身を用意しているか?

が気になりました。いかがでしょうか?

from pytorch_advanced.

d-ishizuka avatar d-ishizuka commented on July 22, 2024 1

ご返信ありがとうございます。
コメントを頂いた点について確認いたしました。

  1. 2-7_SSD_training.ipynbのファイルの場所がフォルダ「data」と同じ階層か?

カレントディレクトリを .../pytorch_advanced-master/2_objectdetection として
rootpath = "./data/VOCdevkit/VOC2012/" としております。

また、dataloaders_dictに関しまして、

[In] dataloaders_dict

[out]{'train': <torch.utils.data.dataloader.DataLoader at 0x7f6d943dee80>,
'val': <torch.utils.data.dataloader.DataLoader at 0x7f6d943deeb8>}

となることから、おそらくdataloaders_dict自体も生成されているのではないかと考えています。

【懸念点①】
書籍の第1章から、AWSを用いた計算を想定されていると考えておりますが、
今回google colabを用いて計算を行っております。そのため、

ディレクトリ構成

という構成になっており、このことが影響しているのでしょうか?
また、何かAWSとGoogle colabで環境設定の差が要因の可能性はあるのでしょうか。

【懸念点②】
同様の結果が出たと述べました、2-2-3_Dataset_DataLoader.ipynbの最後に
おそらくエラーの要因となっている以下のコードを入力しました。

[In]for images, targets in dataloaders_dict['train']:
print(type(images))

というセルを1つ増やし、実行してみたところ同様のエラー

[out]
42 image_file_path = self.img_list[index]
43 img = cv2.imread(image_file_path) # [高さ][幅][色BGR]
---> 44 height, width, channels = img.shape # 画像のサイズを取得
45
46 # 2. xml形式のアノテーション情報をリストに
AttributeError: 'NoneType' object has no attribute 'shape'

が出力されました。

エラー画面

2-2-3_Dataset_DataLoader.ipynbの他のセルは同様の結果にもかかわらず、
images, targetsがdataloaders_dict['train']からうまく受け渡せない要因は何かありますでしょうか?

  1. フォルダutilsとその中身を用意しているか?

utilsに関しましては、サンプルプログラムをそのまま使用させていただきました。
utilsからの関数も引けているようなので、おそらくこちらは問題ないかと考えております。

書籍に関係のない部分に関する質問が混ざってしまい申し訳ございません。
可能な範囲で構いませんので、コメントいただけると幸いです。
よろしくお願いいたします。

from pytorch_advanced.

YutaroOgawa avatar YutaroOgawa commented on July 22, 2024 1

@d-ishizuka さま

詳細にご説明いただき、ありがとうございます。
(これだけ丁寧に記載するのは大変だったかと・・・)

本書をGoogle Colaboratoryで試されている方は多く、本Issueは多くの方の参考になるかと思います。

貴重なコメントを誠にありがとうございます。

気になった注意点としては、

[1] utils内のファイルと2-2-3_Dataset_DataLoader.ipynbはフォルダ階層が異なるので、
フォルダ「data」までのパスが異なる

utilsのファイルをそのまま使用しているので問題なさそう

[2] 実行ファイルを本書では、フォルダ「2_objectdetection」内に置いている

移動して、そのフォルダで実行しているので問題なさそう

上記のいただいたコメントを見た感じではうまくいくはずですが。。。
AWSとGoogle Colaboの違いも本Issue範囲に関してはとくにありません
(GPU使用などは異なる可能性があるのですが)

ただ、感覚的にはエラー原因はファイルパスにあり、パス問題はGoogle Colaboratoryの使用に起因していると思われます。

パスを丁寧に追って、Jupyter Notebook内でカレントディレクトリを取得、

参考
https://qiita.com/mriho/items/42109231d25e7a0ce8c1

などを実施し、パスやディレクトリが本当に想定通りか、プログラム内で実際に確認してみていただけますでしょうか?

from pytorch_advanced.

YutaroOgawa avatar YutaroOgawa commented on July 22, 2024 1

@d-ishizuka さま

非常に丁寧に状況と解決策を共有いただき、誠にありがとうございます。
本書をGoogle Colaboratoryで試す読者の方も多いので、共有いただいた知見はとても貴重なものになります。
ありがとうございます。

@yoshinori77 さまのアドバイスで解決できました。
誠にありがとうございます。

本Issueはopenのままにさせてください(他の読者が見つけやすいように)

本書を進めるうえで、困った際には、今後も些細なことからなんでも気軽に投稿いただければ幸いです。どうぞ宜しくお願い致します。

小川雄太郎

from pytorch_advanced.

d-ishizuka avatar d-ishizuka commented on July 22, 2024 1

@YutaroOgawa さま

ありがとうございます。
本件、他の方のご参考になれば幸いです。

またご相談させていただくこともあるかと思いますが、
アドバイス・コメントいただけると幸いです。
よろしくお願いいたします。

from pytorch_advanced.

neogim avatar neogim commented on July 22, 2024

・Google colab/Google driveでは、扱うデータの数が大きすぎると途中でタイムアウトが
起こり、正しく読み込めない・解凍できないことがあるということだと思います。
すみません、この件につきまして、自分も何度も解凍を実施しているのですが、
確認のため、JPEGImagesフォルダのファイル数を教えていただけますでしょうか。

from pytorch_advanced.

YutaroOgawa avatar YutaroOgawa commented on July 22, 2024

@neogim さま

ご質問ありがとうございます。
手元に今データないので、ぱっと数えれないのですが、
どなたか、分かりますでしょうか?

from pytorch_advanced.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.