質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1798閲覧

Pytorchの学習の際に画像が読み込まれない

spiii

総合スコア24

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/05/24 04:16

編集2020/05/24 04:29

問題

class MyDataset(Dataset): ## 略 def __getitem__(self, index): fn, label = self.data.loc[index][0], self.data.loc[index][2] # ここでfnは画像のPATHとなります。 fn = IMAGE_PATH + fn # img = cv2.imread(fn)[:, :, ::-1] # img = Image.open(fn) img = io.imread(fn)

の際にいろいろな画像読み込みライブラリを使ってみたのですが、
cv2では
TypeError: 'NoneType' object is not subscriptable
他の二つでは
Resource temporarily unavailable: '/home/user_name/workspace/data/TRAIN/07021.jpg'

毎回画像IDは異なります。
と言われ読み込みができません。

試したこと

  • 画像PATHに画像があることの確認。
  • 上記のようにいくつかのライブラリを使ってみる
  • 他のプログラムは動いていませんデした。

環境

PyTorch 1.4.0
ubuntu 18.04

scikit-image 0.16.2
opencv-python 4.2.0.34
Pillow 6.2.2
となっています。

回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2020/05/24 04:31 編集

print(fn) して表示してパスが間違っていないか確認してください import os print(os.path.exists(fn)) が False になっていれば、やはりパスが間違っているのが原因です。
spiii

2020/05/24 04:50

確かにFalseとなって出てくるものがありました。 しかし、その後にls $fn($fnはos.path.exists(fn)の出力)で確認してみると存在していました...
tiitoi

2020/05/24 04:57

絶対パスでしょうか? print(os.path.exists(fn)) が False になったのだとしたら、それが Python を実行した際のファイルが存在するかの認識結果なので、ファイルパスに問題があるのだと思います。
spiii

2020/05/24 09:09

今確認したところ、下記の解決法では計算が止まっていました... 絶対pathで指定しています。lsで確認したら存在しているですよね...
tiitoi

2020/05/24 09:35

Macは持っていないので詳しいことはわからないですが、パーミッションの問題の可能性はないでしょうか
spiii

2020/05/24 09:53

無理やりchmodで変更しようとしたところ jpgファイルにリソースが一時的に利用できません というエラーが出ました。process関連みたでした....
guest

回答1

0

ベストアンサー

質問文の情報だけでは何とも言えないですが、Resource temporarily unavailableと出ているためメモリかプロセス空間のどちらかが足りていないと推測されます。
私なら以下の順番で確認してみます。

  • 学習データを減らしてみる
  • 読み込んだ画像をずっとメモリ上に貯めているなら、使ったら開放できるよう実装を工夫する
  • 仮想環境であれば物理メモリ割り当てを増やしてみる
  • (python側でマルチプロセスやマルチスレッドを実装しているなら)扱うスレッド、プロセス数を減らしてみる
  • pythonの他に不要なプロセスが沢山走っていないか確認してみる

投稿2020/05/24 04:38

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spiii

2020/05/24 04:54

学習データを減らしてみる -> 何も回らずにエラーで落ちているのですが関係あるのでしょうか? 読み込んだ画像をずっとメモリ上に貯めているなら、使ったら開放できるよう実装を工夫する batch_sizeをできるだけ小さくしても動きませんでした。 (python側でマルチプロセスやマルチスレッドを実装しているなら)扱うスレッド、プロセス数を減らし DataLoaderのnum_workerを変えてみたのですが変わりませんでした。 pythonの他に不要なプロセスが沢山走っていないか確認してみる 動いているpython processをkillしてみましたが変わりませんでした
spiii

2020/05/24 04:56

num_workerを0まで下げることで動きました... ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問