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

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

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

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1478閲覧

chainerを使って学習させようとするとクラッシュします

aho_tarou

総合スコア1

Chainer

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/07 07:18

編集2020/09/07 10:37

google colaboratory上でシカとカバとウマ画像を用いて画像分類の学習をするプログラムを作っているのですが、プログラムを実行するとクラッシュします。エラーも出ないので困っています。どうしたら直せるのでしょうか。

ファイルの配列は
net.py(下のコード)
train(学習用画像ファイル)
|----Deers_train(シカの学習用画像224枚)
|
|----Horse_train(ウマの学習用画像326枚)
|
|----Hippo_train(カバの学習用画像429枚)

としています

python

1import chainer 2import os 3import glob 4from itertools import chain 5from chainer.datasets import LabeledImageDataset 6from chainer import iterators,training,optimizers,datasets,serializers 7from chainer.training import extensions,triggers 8from chainer.dataset import concat_examples 9from chainercv.transforms import resize 10from chainer.datasets import TransformDataset 11import chainer.functions as F 12import chainer.links as L 13 14chainer.config.train = True 15 16class MyChain(chainer.Chain): 17 18 def __init__(self): 19 super(MyChain,self).__init__() 20 with self.init_scope(): 21 self.conv1 = L.Convolution2D(None,16,3,pad=2) 22 self.conv2 = L.Convolution2D(None,32,3,pad=2) 23 self.l3 = L.Linear(None,256) 24 self.l4 = L.Linear(None,3) 25 26 def __call__(self,x): 27 h = F.max_pooling_2d(F.relu(self.conv1(x)),ksize=5,stride=2,pad=2) 28 h = F.max_pooling_2d(F.relu(self.conv2(x)),ksize=5,stride=2,pad=2) 29 h = F.dropout(F.relu(self.l3(h))) 30 y = self.l4(h) 31 return y 32 33#img----------- 34 35IMG_TRA = 'train' 36 37dnames = glob.glob('{}/*'.format(IMG_TRA)) 38 39fnames = [glob.glob('{}/*.jpg'.format(d)) for d in dnames] 40fnames = list(chain.from_iterable(fnames)) 41 42labels = [os.path.basename(os.path.dirname(fn)) for fn in fnames] 43dname = [os.path.basename(d) for d in dnames] 44labels = [dname.index(l) for l in labels] 45d = LabeledImageDataset(list(zip(fnames,labels))) 46 47def transform(data): 48 img,label = data 49 img = resize(img,(500,500)) 50 return img,label 51 52train = chainer.datasets.TransformDataset(d,transform) 53 54 55#train--------- 56 57epoch = 10 58batch = 5 59 60model = L.Classifier(MyChain()) 61optimizer = optimizers.Adam() 62optimizer.setup(model) 63 64train_iter = iterators.SerialIterator(train,batch) 65updater = training.StandardUpdater(train_iter,optimizer) 66trainer = training.Trainer(updater,(epoch,'epoch'),out='result') 67 68trainer.extend(extensions.dump_graph('main/loss')) 69trainer.extend(extensions.snapshot(),trigger=(epoch,'epoch')) 70trainer.extend(extensions.LogReport()) 71trainer.extend(extensions.PrintReport(['epoch','main/loss','main/accuracy'])) 72trainer.extend(extensions.ProgressBar()) 73trainer.extend(extensions.PlotReport(['main/loss'],'epoch',file_name='loss.png')) 74trainer.extend(extensions.PlotReport(['main/accuracy'],'epoch',file_name='accuracy.png')) 75 76trainer.run() 77 78serializer.save_npz("mymodel.npz",model) 79

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

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

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

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

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

meg_

2020/09/07 11:59

> プログラムを実行するとクラッシュします。 ”クラッシュ”とはどういうことでしょうか?
aho_tarou

2020/09/07 12:01

文字通りgoogle colaboratory上で「クラッシュしました」としか出ません
meg_

2020/09/07 12:16

メモリ不足の可能性はありませんか?
aho_tarou

2020/09/07 23:27

画像のリサイズの大きさを小さくしたら通りました。 ありがとうございます
guest

回答2

0

自己解決

メモリ不足でクラッシュしていました。
画像のリサイズを500×500から256×256にしたら無事クラッシュしなくなりました。

投稿2020/09/07 23:29

aho_tarou

総合スコア1

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

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

0

Google Drive上に保存されない colab scratchpad という機能を使ってみてコードを試してみたのですが、まずchainercvがインストールされていないというメッセージが現れたので、

!pip install chainercv

をしました。

その後コードを実行したところ、以下のようなメッセージが現れました。

--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-3-aaaba8e01b53> in <module>() 74 trainer.extend(extensions.PlotReport(['main/accuracy'],'epoch',file_name='accuracy.png')) 75 ---> 76 trainer.run() 77 78 serializer.save_npz("mymodel.npz",model) 5 frames /usr/local/lib/python3.6/dist-packages/chainer/iterators/serial_iterator.py in epoch_detail(self) 94 @property 95 def epoch_detail(self): ---> 96 return self.epoch + self.current_position / self._epoch_size 97 98 @property ZeroDivisionError: division by zero

投稿2020/09/07 09:07

taiyakix

総合スコア427

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

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

aho_tarou

2020/09/07 10:27

そのエラーはデータセットを作成できていないときに出ると思うのですが、ファイルの配置はどのようにして実行しましたか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問