1. ホーム
  2. Deep Learning

pytorchはエラーを報告します。ValueError: num_samples は正の整数値であるべきですが、num_samples=0 となりました。

2022-02-20 17:49:50

最近、ネットワークの学習中に ValueError: num_samples should be a positive integer value, but got num_samples=0 というエラーが発生しました。

デバッグの結果、これはdataloaderセッションの問題であることがわかりました。以下のように、データを読み込む際に、判定が枠外に書き込まれていたのです。

def make_dataset(dir, opt):
    images = []
    assert os.path.isdir(dir), '%s is not a valid directory' % dir
    fileList = sorted(os.walk(dir))    
    for root, _, fnames in fileList:
        for fname in fnames:
            if is_image_file(fname):
                path = os.path.join(root, fname)
                if ((opt.phase=='test') or (opt.phase=='train') and min(Image.open(path).size) >= 512):
                    images.append(path)        
    return images

読み込んだ画像が512より小さい場合にエラーとなり、判定を小さく変更することで不具合が解消されます。

つまり、このエラーが報告された場合、学習データが正常にロードされていないことを意味しますので、データのロードに関する手順を確認してください。