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

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

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

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

Python

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

Q&A

0回答

393閲覧

chainer を動かすと WinError 5 が出る

aki34

総合スコア10

Chainer

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

Python

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

0グッド

0クリップ

投稿2018/06/28 08:00

前提・実現したいこと

こちらのサイトにあるchainerによるMNISTの認識を行いたいと考えてます.
【Chainer入門】Trainerで訓練コードを書いてみよう!
そのままコピペでは動いたのですがdropoutを追加して動かしてみると下記のようなエラーが発生して困っています.

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

C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_converters epoch main/loss main/accuracy validation/main/loss validation/main/accuracy elapsed_time 1 0.942897 0.692114 0.534543 0.83574 3.5464 2 0.476107 0.860125 0.405937 0.876978 7.41841 3 0.390607 0.885994 0.352789 0.896855 11.2491 4 0.34565 0.899606 0.338131 0.902789 15.2071 5 0.30767 0.910048 0.299878 0.908623 19.2382 Exception in main training loop: [WinError 5] アクセスが拒否されました。: 'result\logumjwajtr\log.json' Traceback (most recent call last): File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\training\trainer.py", line 309, in run entry.extension(self) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\training\extensions\log_report.py", line 105, in __call__ shutil.move(path, new_path) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\contextlib.py", line 88, in __exit__ next(self.gen) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\utils\__init__.py", line 52, in tempdir shutil.rmtree(temp_dir, ignore_errors=ignore_errors) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 494, in rmtree return _rmtree_unsafe(path, onerror) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 389, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 387, in _rmtree_unsafe os.unlink(fullname) Will finalize trainer extensions and updater before reraising the exception. Traceback (most recent call last): File "sample0.py", line 84, in <module> trainer.run() File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\training\trainer.py", line 320, in run six.reraise(*sys.exc_info()) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\six.py", line 693, in reraise raise value File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\training\trainer.py", line 309, in run entry.extension(self) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\training\extensions\log_report.py", line 105, in __call__ shutil.move(path, new_path) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\contextlib.py", line 88, in __exit__ next(self.gen) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\site-packages\chainer\utils\__init__.py", line 52, in tempdir shutil.rmtree(temp_dir, ignore_errors=ignore_errors) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 494, in rmtree return _rmtree_unsafe(path, onerror) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 389, in _rmtree_unsafe onerror(os.unlink, fullname, sys.exc_info()) File "C:\ProgramData\Anaconda3\envs\py3.6\lib\shutil.py", line 387, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 5] アクセスが拒否されました。: 'result\logumjwajtr\log.json'

該当のソースコード

python

1# cite from https://www.sejuku.net/blog/48977 2 3import numpy as np 4import chainer 5from chainer.backends import cuda 6from chainer import Function, gradient_check, report, training, utils, Variable 7from chainer import datasets, iterators, optimizers, serializers 8from chainer import Link, Chain, ChainList 9import chainer.functions as F 10import chainer.links as L 11from chainer.training import extensions 12from chainer.datasets import mnist 13from chainer.training import extensions 14 15class MLP(Chain): 16 17 def __init__(self, n_mid_units=100, n_out=10): 18 super(MLP, self).__init__() 19 with self.init_scope(): 20 self.l1 = L.Linear(None, n_mid_units) 21 self.l2 = L.Linear(None, n_mid_units) 22 self.l3 = L.Linear(None, n_out) 23 24 self.dr = 0.5 25 26 def set_dropout_r(self, _dr): 27 self.dr = _dr 28 29 def __call__(self, x): 30 with chainer.using_config('train', True): 31 # h1 = F.relu(self.l1(x)) 32 # h2 = F.relu(self.l2(h1)) 33 h1 = F.dropout(F.relu(self.l1(x)), ratio=self.dr) 34 h2 = F.dropout(F.relu(self.l2(h1)), ratio=self.dr) 35 return self.l3(h2) 36 37train, test = mnist.get_mnist() 38 39minibatchsize = 128 40train_iter = iterators.SerialIterator(train, minibatchsize) 41test_iter = iterators.SerialIterator(test, minibatchsize, False, False) 42 43mlp = MLP() 44 45# Classifierでmodelをラップすることで、modelに損失の計算プロセスを追加します。 46# 引数に損失関数を指定しない場合は、softmax_cross_entropyを使います。 47model = L.Classifier(mlp) 48 49# GPUが使える場合は、gpu_idに0を代入します。ない場合は-1とします。 50gpu_id=-1 51if gpu_id >= 0: 52 model.to_gpu(gpu_id) 53 54# choose optimizer 55optimizer = optimizers.MomentumSGD() 56 57# set model to optimizer 58optimizer.setup(model) 59 60# Iteratorとoptimizerを使うupdaterを作る 61updater = training.updaters.StandardUpdater(train_iter, optimizer, device=gpu_id) 62 63# 学習する回数を決める 64max_epoch = 30 65 66# Trainerの用意.updaterを渡すことで使える. 67trainer = training.Trainer(updater, (max_epoch, 'epoch'), out='result') 68 69# ログファイルを保存する機能を追加 70# トレーニング情報を定期的に端末に表示する機能 71trainer.extend(extensions.LogReport()) 72# 定期的に状態をシリアライズ(保存)する機能 73# trainer.extend(extensions.snapshot(filename='snapshot_epoch-{.updater.epoch}')) 74# trainer.extend(extensions.snapshot_object(model.predictor, filename='model_epoch-{.updater.epoch}')) 75# テストデータを使ってモデルの評価を行う機能 76trainer.extend(extensions.Evaluator(test_iter, model, device=gpu_id)) 77trainer.extend(extensions.PrintReport(['epoch', 'main/loss', 'main/accuracy', 'validation/main/loss', 'validation/main/accuracy', 'elapsed_time'])) 78# 損失関数の値をグラフにする機能 79trainer.extend(extensions.PlotReport(['main/loss', 'validation/main/loss'], x_key='epoch', file_name='loss.png')) 80# 正答率をグラフにする機能 81trainer.extend(extensions.PlotReport(['main/accuracy', 'validation/main/accuracy'], x_key='epoch', file_name='accuracy.png')) 82trainer.extend(extensions.dump_graph('main/loss')) 83 84trainer.run()

試したこと

さまざまなサイトを参考にしながらいろいろ試してはみたのですがどれも解決には至りませんでした.
アクセス権の設定変更
管理者権限での実行
あと,リンクがどこにいったのかわからなくなって申し訳ないのですが「仮想環境を作って実行する」というのも試しましたが同じ問題が発生しました.

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

OS windows10
python 3.6
chainer ver4.2.0

どうぞよろしくお願いします.

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問