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

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

ただいまの
回答率

89.08%

chainerのデータセットをcifar10からMNISTに変えるとエラーになる

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 342

cogi

score 4

前提・実現したいこと

chainerで画像分類モデルと学習の定義をしていました。
データセットをcifar10からIRISに変更したところ
以下のエラーが発生します。

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

Exception in main training loop: 
Invalid operation is performed in: Convolution2DFunction (Forward)

該当のソースコード

def train(batchsize=128, gpu_id=0, max_epoch=20, base_lr=0.01):
  # 1. Dataset
    #train_val, test = chainer.datasets.get_cifar10()
    #train_size = int(len(train_val) * 0.9)
    #train, valid = split_dataset_random(train_val, train_size, seed=0)

    # Iris データセットの読み込み
    dataset = load_iris()

    # 入力値と目標値を別々の変数へ格納
    x = dataset.data
    t = dataset.target

    # Chainer がデフォルトで用いる float32 型へ変換
    x = np.array(x, np.float32)
    t = np.array(t, np.int32)

    # 入力値と目標値を引数に与え、`TupleDataset` オブジェクトを作成
    dataset = TupleDataset(x, t)

    n_train = int(len(dataset) * 0.7)

    train, valid = split_dataset_random(dataset, n_train, seed=0)

    # 2. Iterator
    train_iter = iterators.MultiprocessIterator(train, batchsize)
    valid_iter = iterators.MultiprocessIterator(valid, batchsize, False, False)

    # 3. Model
    model = DeepCNN(10)
    net = L.Classifier(model)

    # 4. Optimizer
    optimizer = optimizers.MomentumSGD(lr=0.01).setup(net)
    optimizer.add_hook(chainer.optimizer.WeightDecay(0.0005))

    # 5. Updater
    updater = training.StandardUpdater(train_iter, optimizer, device=gpu_id)

    # 6. Trainer
    trainer = training.Trainer(updater, (max_epoch, 'epoch'), out='result-cifar-10')

    # 7. Trainer extensions
    trainer.extend(extensions.LogReport())
    trainer.extend(extensions.observe_lr())
    trainer.extend(extensions.Evaluator(valid_iter, net, device=gpu_id), name='val')
    trainer.extend(extensions.PrintReport(['epoch', 'main/loss', 'main/accuracy', 'val/main/loss', 'val/main/accuracy', 'elapsed_time', 'lr']))
    trainer.extend(extensions.PlotReport(['main/loss', 'val/main/loss'], x_key='epoch', file_name='loss.png'))
    trainer.extend(extensions.PlotReport(['main/accuracy', 'val/main/accuracy'], x_key='epoch', file_name='accuracy.png'))
    trainer.extend(extensions.snapshot_object(model
                                              , "model_epoch_{.updater.epoch}"))
    trainer.extend(extensions.dump_graph("main/loss"))

    trainer.run()
    del trainer

    # 8. Evaluation
    test_iter = iterators.MultiprocessIterator(test, batchsize, False, False)
    test_evaluator = extensions.Evaluator(test_iter, net, device=gpu_id)
    results = test_evaluator()
    print('Test accuracy:', results['main/accuracy'])
    return model
model = train()

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

google coraboratory 上で実行しています。

このサイトを参考に作成しています。
https://qiita.com/ta7uw/items/9301eef7dd74a249d5ea

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

タイトル間違ってました。
MNIST→IRISです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.08%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る