Closed BURI55 closed 5 years ago
私もwindowsで試してみたのですが、そのエラーは発生しませんでした。 簡単そうであれば解決策を探したいと思いますので、エラーメッセージを書いてください。
user@DESKTOP-VH77PEE MINGW64 ~/deep_yukarin
$ python become-yukarin/train.py dat/1st_models_by/yukari/config.json dat/1st_models_by/yukari/1st_yukari_model_by
Exception in main training loop: Can't pickle local object 'create.
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was: Error in sys.excepthook:
Original exception was:
user@DESKTOP-VH77PEE MINGW64 ~/deep_yukarin
$ Traceback (most recent call last):
File "
エラーメッセージは次の通りになります。
E:\become-yukarin>python train_sr.py recipe/config_sr.json dat/model/yukari_2nd/test
Exception in main training loop: Can't pickle local object 'create_sr.
エラーログを見てみたのですが、原因はわかりませんでした。 推奨環境のLinuxを使ってくださればと思います。
train.py
にあるMultiprocessIterator
をSerialIterator
にすれば回避できるかもしれません。
その場合は学習が遅くなると思います。
issueは一旦閉じますが、また何かわかればコメントしてください。
train.pyにあるMultiprocessIteratorをSerialIteratorにしたところ、以下のエラーが出ます。 user@DESKTOP-VH77PEE MINGW64 ~/deep_yukarin $ python become-yukarin/train_sr.py \
dat/2nd_models_by/yukari/config_sr.json \ dat/2nd_models_by/yukari/2nd_yukari_model_by Traceback (most recent call last): File "become-yukarin/train_sr.py", line 38, in
train_iter = MultiprocessIterator(dataset['train'], config.train.batchsize) NameError: name 'MultiprocessIterator' is not defined
全て直したところ動きましたが、10万イテレーションに60時間かかるようです。
35000イテレーションに12時間かかりました。
回避方法を教えていただきました。 C:\Usersユーザ名\Anaconda3\pkgs\python-3.6.5-h0c2934d_0\Lib\multiprocessing\http://reduction.py/ の15行目にある import pickleを import dill as pickleに変更 dillはpipなどからインストールしてください だそうです。 ヒホさんのソースをいじるのではなく、Pythonそのものをいじるやり方になります。 現在試運転中ですが、マルチプロセッシングでエラー出ないでうまく動いているようです。
動作推奨環境について https://github.com/Hiroshiba/become-yukarin/issues/27 で、
・Windows環境ではマルチスレッド処理のpickleでエラーが起きます
と指摘があり、Linux推奨になったと思いますが、
windowsでのvoice_conversion_test.pyの実行エラーについて https://github.com/Hiroshiba/become-yukarin/issues/34
にて、
・train.py実行時、if name == 'main' が無いというエラーが発生する。 こちらもmultiprocessingに関連するエラーのようです。 どの部分をif name == 'main'で囲めばよいのか分からないため全体を囲ってから 実行しました。
これは8月25日に直りましたが、
・train.py実行時、pickle使用時にAttributeErrorが発生する windows環境ではmultiprocessingの開始にはspawnを使用する必要があります。 https://docs.python.jp/3/library/multiprocessing.html おそらくこのプログラムはforkを前提として記載しているため、spawnでpickleを使用する際にエラーが発生します。 この点を改善するために、pickleではなくdillを使用するようにしてpickle使用時のエラーに対応しました。
これはまだ直っていません。
その後も、 AttributeError: Can't pickle local object 'create_sr..'
https://github.com/Hiroshiba/become-yukarin/issues/54
という関連質問があり、
今も同じエラーが発生しています。
こちらも改修してはいただけないでしょうか?
参考 Pythonのpickleでserializeできない問題の回避策(dill) http://nishidy.hatenablog.com/entry/2016/02/01/225750