2017-11-06 2 views
0

CNNで作業する画像を読み込もうとしていますが、画像を読み込もうとしているときにパンダエラーが表示されます。 これはコード(明確にするために省略輸入と無関係NNクラス)の一部である:パンダで画像を読み取るときにエラーが発生しました(+ pyTorch、scikit)

file_name = "annotation.csv" 
image_files = pd.read_csv(file_name) 

class SimpsonsDataset(Dataset): 

    def __init__(self, csv_file, root_dir, transform=None): 
     self.image_file = pd.read_csv(csv_file) 
     self.root_dir = root_dir 
     self.transform = transform 

    def __len__(self): 
     return len(self.image_file) 

    def __getitem__(self, idx): 
     img_name = os.path.join(self.root_dir, self.image_file.iloc[idx,0][1:]) 
     image = io.imread(img_name) 
     sample = {'image': image} 
     if self.transform: 
      sample = self.transform(sample) 
     return sample 

simpsons = SimpsonsDataset(csv_file=image_files,root_dir="folder/") 

私はファイルパスをフォーマットするiloc[idx,0][1:]を使用し、ファイルパス、フォルダやファイル名のマッチングと、接合されています。

私は、ファイルを実行しようとすると、しかし、私は次のエラーを取得する:

File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile 
    execfile(filename, namespace) 

    File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile 
    exec(compile(f.read(), filename, 'exec'), namespace) 

    File "C:/.../image_extractor.py", line 41, in <module> 
    simpsons = SimpsonsDataset(csv_file=image_files,root_dir="folder/") 

    File "C:/.../image_extractor.py", line 26, in __init__ 
    self.image_file = pd.read_csv(csv_file) 

    File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 655, in parser_f 
    return _read(filepath_or_buffer, kwds) 

    File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 392, in _read 
    filepath_or_buffer, encoding, compression) 

    File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\common.py", line 210, in get_filepath_or_buffer 
    raise ValueError(msg.format(_type=type(filepath_or_buffer))) 

ValueError: Invalid file path or buffer object type: <class 'pandas.core.frame.DataFrame'> 

は、なぜこれが起こっているにいくつかの洞察を大好きです。ありがとう!

答えて

1

変数image_filesは、戻り値がpd.read_csv()であり、DataFrameを返すため、パンダのDataFrameです。

simpsons = SimpsonsDataset(csv_file=file_name, root_dir="folder/") 
:ライン

image_files = pd.read_csv(file_name) 

を削除し、この最後の行を変更してみてください

関連する問題