Comments (10)
@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.
@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.
@yoshinori77 さま
貴重なアドバイスありがとうございます。
・VOCの元サイトが落ちている(メンテ中?)ことが多々あり、あまり安定していない?
・ダウンロードデータが大きいのでミスする?(ダウンロードか解凍か?)
かもしれません。
@d-ishizuka さま、いちど、yohinori77さまの手順も試してみていただけますと幸いです。
ありがとうございます。
from pytorch_advanced.
@d-ishizuka さま
ご連絡ありがとうございます。
エラーから、248行目
img = cv2.imread(image_file_path) # [高さ][幅][色BGR]
に問題がありそうですね。
本章を前から順番に進めていて、2-2-3_Dataset_DataLoader.ipynb
でエラーが出ていなくて、2-7_SSD_training.ipynbでエラーが出るのは、
なかなか、理由がわかりませんね。
- 2-7_SSD_training.ipynbのファイルの場所がフォルダ「data」と同じ階層か?
- フォルダutilsとその中身を用意しているか?
が気になりました。いかがでしょうか?
from pytorch_advanced.
ご返信ありがとうございます。
コメントを頂いた点について確認いたしました。
- 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']からうまく受け渡せない要因は何かありますでしょうか?
- フォルダutilsとその中身を用意しているか?
utilsに関しましては、サンプルプログラムをそのまま使用させていただきました。
utilsからの関数も引けているようなので、おそらくこちらは問題ないかと考えております。
書籍に関係のない部分に関する質問が混ざってしまい申し訳ございません。
可能な範囲で構いませんので、コメントいただけると幸いです。
よろしくお願いいたします。
from pytorch_advanced.
@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.
@d-ishizuka さま
非常に丁寧に状況と解決策を共有いただき、誠にありがとうございます。
本書をGoogle Colaboratoryで試す読者の方も多いので、共有いただいた知見はとても貴重なものになります。
ありがとうございます。
@yoshinori77 さまのアドバイスで解決できました。
誠にありがとうございます。
本Issueはopenのままにさせてください(他の読者が見つけやすいように)
本書を進めるうえで、困った際には、今後も些細なことからなんでも気軽に投稿いただければ幸いです。どうぞ宜しくお願い致します。
小川雄太郎
from pytorch_advanced.
@YutaroOgawa さま
ありがとうございます。
本件、他の方のご参考になれば幸いです。
またご相談させていただくこともあるかと思いますが、
アドバイス・コメントいただけると幸いです。
よろしくお願いいたします。
from pytorch_advanced.
・Google colab/Google driveでは、扱うデータの数が大きすぎると途中でタイムアウトが
起こり、正しく読み込めない・解凍できないことがあるということだと思います。
すみません、この件につきまして、自分も何度も解凍を実施しているのですが、
確認のため、JPEGImagesフォルダのファイル数を教えていただけますでしょうか。
from pytorch_advanced.
@neogim さま
ご質問ありがとうございます。
手元に今データないので、ぱっと数えれないのですが、
どなたか、分かりますでしょうか?
from pytorch_advanced.
Related Issues (20)
- EfficientGANの実装について HOT 4
- 2-2-3においてのエラーについて HOT 3
- 【著者より】発刊から約3年、本書を今後どうしていくべきなのでしょうか。。。 HOT 3
- 第7章&第8章 本書のファイルを変更せずローカル実行できるDockerイメージ HOT 4
- P.82 DBox P.87 正規化 P.106 正解BBox その他 HOT 1
- 2-2-3 Datasetの実装(p.74上部)についての質問 HOT 5
- 2-2-3 p.78中部に関して HOT 2
- 3-7 p174 ファインチューニングによる学習と検証の実施(semantic segmentation) の損失の表示について HOT 1
- 2-4 ネットワークモデルの実装
- 2-4 ネットワークモデルの構築に関して
- 2-8 推論の実施で画像が描出されない
- 2-8 学習データをC++から使いたい
- 1-3転移学習のエラーについて
- semantic segmentationのIoUについて
- 【第1章】【1-1_load_vgg.ipynb】module 'matplotlib.pyplot' has no attribute 'open'
- AWSのEC2インスタンスに関して
- 2-2-3のDataTransformの動作確認時のエラーについて HOT 2
- 複数のファイルが存在しない点について
- 【第四章の】mask.tar.gz download error HOT 1
- 第7章 Transformer向け dataloader (torchtext 0.16.0対応)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pytorch_advanced.