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

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

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

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Q&A

解決済

1回答

1986閲覧

con.concat_examplesを使ってうまくデータを分けられない。

daisukezr

総合スコア13

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

0グッド

0クリップ

投稿2020/08/04 09:52

編集2020/08/04 09:57

前提・実現したいこと

自分で持っている画像をchinerで使えるデータセットに変換し、con.concat_examplesを使ってデータを分割したいのですが、以下のようなエラーが発生します。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-26-3d8accadaf6d> in <module>() ----> 1 xtrain, ttrain = con.concat_examples(train) 2 xtest, ttest = con.concat_examples(train) 7 frames /usr/local/lib/python3.6/dist-packages/chainer/dataset/convert.py in __call__(self, *args, **kwargs) 63 elif 'device' in kwargs: 64 kwargs['device'] = _get_device(kwargs['device']) ---> 65 return base_callable(*args, **kwargs) 66 67 /usr/local/lib/python3.6/dist-packages/chainer/dataset/convert.py in concat_examples_func(batch, device, padding) 271 raise ValueError('batch is empty') 272 --> 273 first_elem = batch[0] 274 275 if isinstance(first_elem, tuple): /usr/local/lib/python3.6/dist-packages/chainer/dataset/dataset_mixin.py in __getitem__(self, index) 65 return [self.get_example(i) for i in index] 66 else: ---> 67 return self.get_example(index) 68 69 def __len__(self): /usr/local/lib/python3.6/dist-packages/chainer/datasets/sub_dataset.py in get_example(self, i) 74 if self._order is not None: 75 index = self._order[index] ---> 76 return self._dataset[index] 77 78 /usr/local/lib/python3.6/dist-packages/chainer/dataset/dataset_mixin.py in __getitem__(self, index) 65 return [self.get_example(i) for i in index] 66 else: ---> 67 return self.get_example(index) 68 69 def __len__(self): /usr/local/lib/python3.6/dist-packages/chainer/datasets/transform_dataset.py in get_example(self, i) 49 50 def get_example(self, i): ---> 51 in_data = self._dataset[i] 52 return self._transform(in_data) /usr/local/lib/python3.6/dist-packages/chainer/dataset/dataset_mixin.py in __getitem__(self, index) 65 return [self.get_example(i) for i in index] 66 else: ---> 67 return self.get_example(index) 68 69 def __len__(self): /usr/local/lib/python3.6/dist-packages/chainer/datasets/image_dataset.py in get_example(self, i) 156 157 def get_example(self, i): --> 158 path, int_label = self._pairs[i] 159 full_path = os.path.join(self._root, path) 160 image = _read_image_as_array(full_path, self._dtype) ValueError: too many values to unpack (expected 2)

該当のソースコード

python

1import chainer.dataset.convert as con 2import os 3import chiner.datasets as ds 4 5def add_labeled_data(folder, all_list): 6 image_files = os.listdir(folder) 7 for i in range(5): 8 for j in range(20): 9 labeled_file = (folder + '{}_{}'.format(i, j)) 10 all_list.append(labeled_file) 11 return all_list 12 13def transform64(data): 14 data = data.astype(np.uint8) 15 data = im.fromarray(data.transpose(1, 2, 0)) 16 data = data.resize((64, 64), im.BICUBIC) 17 data = np.asarray(data).transpose(2, 0, 1) 18 data = data.astype(np.float32) / 255 19 return data 20 21all_list = [] 22add_labeled_data('/content/drive/My Drive/Colab Notebooks/haruna_picture/', all_list) 23add_labeled_data('/content/drive/My Drive/Colab Notebooks/shrek_picture/', all_list) 24dataset = ds.LabeledImageDataset(all_list) 25 26dataset = ds.TransformDataset(dataset, transform64) 27D = len(dataset) 28Dtrain = D // 2 29train,test = ds.split_dataset_random(dataset, Dtrain) 30 31xtrain, ttrain = con.concat_examples(train) 32xtest, ttest = con.concat_examples(train) 33 34

試したこと

大関真之著書のpythonで機械学習入門の第7章を参考にして書いています。
最後2行で上のエラーメッセージが発生します。
不備があればその都度追加しますので、指摘お願いします。

補足情報(FW/ツールのバージョンなど)

python3.7
Google corabolatoryを使用

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

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

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

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

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

guest

回答1

0

ベストアンサー

私も同じ箇所をやってますが、エラーはでてません。
因みに、その前の箇所の画像を取得する先の問題は解決してますか?
https://github.com/mohzeki222/ohm_princess/issues/6

>xtest, ttest = con.concat_examples(train)
xtest, ttest = con.concat_examples(test) ←ですね。

投稿2020/08/26 06:54

makimakima

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問