Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【第1章】【1-3_transfer_learning.ipynb 書籍P30】にてTypeErrorが発生します #138

Open
Muranikofu opened this issue Jan 4, 2021 · 7 comments

Comments

@Muranikofu
Copy link

1-3_transfer_learning.ipynbの30ページ、学習・検証の実行の以下の部分でTypeError : tensor is not a torch image.が発生します。

Ogawa様のgithubコードと書籍を照らし合わせながら写経しましたが、同じ現象が発生してしまいます。

実行環境はJupytrnotebookで、バージョンは以下になります。
PyTorch Version : 1.0.1
TorchVision Version : 0.2.2

具体的なエラーは以下です。

2021-01-04 (1)

2021-01-04 (2)

Image画像が上手く行列に変換出来ていないのでしょうか?

ご回答のほど、よろしくお願いいたします。

@YutaroOgawa
Copy link
Owner

@Muranikofu さま

新年早々に、本書へ取り組んでいただき、誠にありがとうございます。

上記、直感的には、
[1] 読み込みたい画像のパスが間違っている(とくにGoogle Colabを使用の場合)
[2] エラーメッセージの通り、読み込んでいるものが、Imageになっていない

のどちらかではないか?と思いました。

Q1. 現在の環境で以下を実行してうまく動作しますでしょうか?

・書籍のp. 21 の図1.3.1
・p. 23のファイルリストの出力

./data/hymenoptera_data/train/**/*.jpg
./data/hymenoptera_data/val/**/*.jpg
['./data/hymenoptera_data/train\\ants\\0013035.jpg',
'./data/hymenoptera_data/train\\ants\\1030023514_aad5c608f9.jpg',
・・・

・p. 25の「DataLoaderの作成」

Q2. 環境をGoogle ColabやAWSに変更した場合に、再度画像データをそちらの環境にも用意していますでしょうか?

このあたりが、うまく行っていれば動作しそうですが。
検証のほど、よろしくお願いいたします。

@Muranikofu
Copy link
Author

Ogawa様

早々にご回答頂きまして、ありがとうございます。
検証項目であります、Q1に関しまして、

・書籍のp. 21 の図1.3.1
2021-01-05 (3)

・p. 23のファイルリストの出力
2021-01-05

・p. 25の「DataLoaderの作成」
2021-01-05 (4)

以上のように、検証Q1について、問題なく動作いたしました。

Q2に関して、google Colabでも実行してみました。

・書籍のp. 21 の図1.3.1
正常に動作完了

・p. 23のファイルリストの出力
2021-01-05 (5)

Jupyternotebookではantsが出力されていますが、googleColabではbeesが先に出力されています。
出力する順番が後の結果に影響を及ぼす可能性はあるのでしょうか?

・p. 25の「DataLoaderの作成」
2021-01-05 (7)

また、GoogleColabで実行してみて気になった箇所があります。

p. 25のDataセットを作成で出力が1になったことです。
2021-01-05 (6)

p. 31のGoogleColabでの実行結果はエラーで、以下になりました。
2021-01-06

Ogawa様より、ご提示いただいた[1]に関しては、画像を読み込むパスも問題ないように思いました。

やはり、[2] エラーメッセージの通り、読み込んでいるものが、Imageになっていない、が問題でしょうか。

よろしくお願いいたします。

@YutaroOgawa
Copy link
Owner

@Muranikofu さん

早速、非常に丁寧にありがとうございます。

Jupyternotebookではantsが出力されていますが、googleColabではbeesが先に出力されています。
出力する順番が後の結果に影響を及ぼす可能性はあるのでしょうか?
また、GoogleColabで実行してみて気になった箇所があります。
p. 25のDataセットを作成で出力が1になったことです。

これは、ダウンロードや解凍でファイルの順番にランダム性があることに起因していると思います。
そのため、問題ないかと思います。

ちょっと、思い浮かぶ原因がもうないので、1_3をGoogle Colabで実行するファイルを新規に作成しました。

以下に配置しています。

こちらを試してみて、お手元のファイルとの状況の違いを探っていただけますでしょうか。
お手数をおかけしますが、どうぞ宜しくお願い致します。

https://github.com/YutaroOgawa/pytorch_advanced/blob/master/1_image_classification/1_3_transfer_learning_on_GoogleColab.ipynb

@Muranikofu
Copy link
Author

Ogawa様

ご回答ありがとうございます。
1_3のファイルを新規に作成して頂き、ありがとうございました。

この作成頂いたファイルを基に、複数の検証を行いました。

① 1_3の新規作成頂いたファイルを# 追記以上-------までの範囲を、自身のColabファイルに#パッケージのインポートの上にコピー。その上、Ogawa様のファイルと自身のファイルで比較すると、Dataseteを作成する項目で、valの箇所で自身がtransforms.ToTensor()を記述するのを失念していたことが発覚いたしました。質問する前に何度も確認したはずでしたが、大変申し訳なく思います。

② 自身で作成したColabファイルで、1_3の新規作成頂いたファイルの追記なしで、Datasetの作成のvalの箇所にtransforms.ToTensor()を記述して、再度実行すると、これも完了いたしました。

③ 最後にJupyterNotebookでも、Datasetを作成のvalの箇所にtransforms.ToTensor()を記述して、実行すると、新たなエラーが発生しました。感覚からしますと、前回まではepochが1/2の所、実行して直ぐにエラーが発生しましたが、今回は2段目40%の所で、エラーが発生しました。内容は、UnboundLocalError: local variable 'photoshop' referenced before assignmentです。
実際のエラー画面は以下になります。
2021-01-07 (1)
2021-01-07 (2)

これは、元の画像が上手く探すことが出来ていないのが、エラーの原因なのでしょうか?

よろしくお願いいたします。

@YutaroOgawa
Copy link
Owner

@Muranikofu さま

早速の検証をありがとうございます。

いただいた、エラーは以下と同じかもしれません。

【第1章】【1-3_transfer_learning.ipynb】にてエラーが発生します(UnboundLocalError: local variable 'photoshop' referenced before assignment)
#9

こちらの対応策を試してみるといかがでしょうか?

@Muranikofu
Copy link
Author

Ogawa様

UnboundLocalError: local variable 'photoshop' referenced before assignmentのエラーの対応策をご案内頂き、ありがとうございます。
ご教示の通り、Pillowのバージョンを下げた後、JupyternotebookツールバーでKernelをRestartすることでエラーが発生することなく、学習と検証が無事に実行できました。

本当にありがとうございました。

改めてしっかり復習を行い、引き続き実装を進めてまいります。

今後ともよろしくお願いいたします。

@YutaroOgawa
Copy link
Owner

@Muranikofu さま

ここまで丁寧に進めていただき、誠にありがとうございます。

本書序盤の大切な部分なので、書籍としても重要な部分になります。
他の多くの新たな読者の皆様にとって、大変参考になる投稿になりました。
誠にありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants