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

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

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

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

Python 3.x

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

Q&A

0回答

1727閲覧

[python3/Chainer]trainer.run()でのValueErrorについて

lilium_09

総合スコア9

Chainer

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

Python 3.x

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

0グッド

0クリップ

投稿2018/10/22 08:45

機械学習初心者です。Chainerを使った画像分類をしようとしています。
フォルダのパスを渡してデータセットを作り、学習するという流れなのですが、trainer.run()を実行すると
ValueError: all the input array dimensions except for the concatenation axis must match exactly
というエラーが出てしまい、学習ができません。
データセットを作る際に渡しているfnameとlabelsには、同数の要素が入っていることを確認しています。
このエラーの出る理由と、解決方法をご教授いただけないでしょうか。
以下にコードとエラーを載せさせていただきます。

python3

1import numpy as np 2import os 3import glob 4import chainer 5from itertools import chain 6from chainer.datasets import LabeledImageDataset 7from chainer import iterators, training, optimizers, datasets, serializers 8 9from mymodell import MyChain 10 11chainer.config.train = True 12 13# 画像フォルダのパス 14IMG_DIR = 'Z:trainf' 15 16# 各フォルダ 17dnames = glob.glob('{}/*'.format(IMG_DIR)) 18# 画像ファイルパス一覧 19fnames = [glob.glob('{}/*.PNG'.format(d)) for d in dnames] 20fnames = list(chain.from_iterable(fnames)) 21 22# それぞれにフォルダ名から一意なIDを付与 23labels = [os.path.basename(os.path.dirname(fn)) for fn in fnames] 24dnames = [os.path.basename(d) for d in dnames] 25labels = [dnames.index(l) for l in labels] 26d = LabeledImageDataset(list(zip(fnames, labels))) 27 28def transform(data): 29 img, label = data 30 img = img / 255. 31 return img, label 32 33 34train = chainer.datasets.TransformDataset(d, transform) 35 36epoch = 10 37batch = 5 38 39model = MyChain() 40model = L.Classifier(model) 41 42optimizer = optimizers.Adam() 43optimizer.setup(model) 44 45train_iter = iterators.SerialIterator(train, batch) 46updater = training.StandardUpdater(train_iter, optimizer) 47trainer = training.Trainer(updater, (epoch, 'epoch'), out='result') 48trainer.run() 49 50serializers.save_npz("c_mymo.npz", model)

error

1 return xp.concatenate([array[None] for array in arrays]) 2 3ValueError: all the input array dimensions except for the concatenation axis must match exactly

コードの作成にはこちらのサイト様を参考にさせていただきました。

機械学習でアホガールのさやかちゃんを判定してみる

###補足情報(FW/ツールのバージョンなど)
開発環境
Windows10
WinPython-64bit-3.6.3(Python3.6)

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問