6
1

More than 3 years have passed since last update.

日本語版GPT2を動かそうと思ったら”ValueError: Can't load save_path when it is None.”が出た話

Posted at

GPT2の日本語版が出ていたと聞いたのでありがたく使わせてもらいました。使おうとした際エラーで詰まった点を記載しておきます。
https://github.com/tanreinama/gpt2-japanese/blob/master/README.md 

環境

python 3.7.9
tensorflow-gpu 2.4.0
仮想環境:pipenv
Windows10
GPU : GeForce RTX3070

結論

modelで指定しているpathがずれている。
gpt2-japanese\gpt2-generate.py内の113行目、

gpt2-generate.py
ckpt = tf.train.latest_checkpoint(args.model) 

gpt2-generate.py
ckpt = tf.train.latest_checkpoint(".\gpt2ja-medium.tar\gpt2ja-medium") 

に書き換える。

この際のディレクトリ構造は以下の通り


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2021/01/30     10:32                .github
d-----        2021/01/30     17:34                gpt2ja-medium.tar
d-----        2021/01/30     10:32                report
-a----        2021/01/30     10:32         189183 emoji.json
-a----        2021/01/30     10:32           6317 encode_bpe.py
-a----        2021/01/30     18:27           3893 gpt2-generate.py
-a----        2021/01/30     10:32           4375 gpt2-score.py
-a----        2021/01/30     10:32           2075 gpt2-transform.py
-a----        2021/01/30     10:32         128339 ja-bpe.txt
-a----        2021/01/30     10:32           1067 LICENSE
-a----        2021/01/30     10:32           7285 model.py
-a----        2021/01/30     10:32           9129 README.md
-a----        2021/01/30     10:32             29 requirements.txt
-a----        2021/01/30     10:32           8830 run_finetune.py
-a----        2021/01/30     10:32           4781 sampling.py
-a----        2021/01/30     10:32            553 special_thanks.txt

gpt2ja-medium.tar\gpt2ja-medium 内にモデルがある様子。

詰まった点について

windows10であったため、tar コマンドが使えず、wgetした後の「tar xvfj gpt2ja-medium.tar.bz2」でbz2を展開できなかった。
従って解凍ソフト、LhaForgeを使用した。
https://www.lzh-zip.com/freesoft/free108zukai.html 

これでひとまずbz2形式をwindowsで展開することに成功。

ディレクトリ配置云々

そもそもこのエラー、解凍したあとに適当にここだろと思う場所に配置したのが原因っぽい。

参考になったサイト
「Trained tensorflow model moved to another directory cannot be loaded」:
https://www.reddit.com/r/tensorflow/comments/bg2rte/trained_tensorflow_model_moved_to_another/ 

「ArgumentParserの使い方を簡単にまとめた」:
https://qiita.com/kzkadc/items/e4fc7bc9c003de1eb6d0 

これで最後に試してみる。

twitter でバズってたツイートの続きを生成してみよう。

...\gpt2-japanese> python gpt2-generate.py --context="""
>> 男に誘われた時の判別表つくっといたよ
>>
>> 宅飲みヤリモク
>> 飲み屋ヤリモク
>> 焼肉ヤリモク
>> カラオケヤリモク
>> ドライブヤリモク
>> ゲーセン(UFOキャッチャー、プリクラなど)ヤリモク
>> 
>> 競技プログラミング圧倒的に信用できる
>> """

出力

========

AIが発達しすぎた時代の世界
1080以上プログラミングできる人すげー!
「今は、この人が最適ですね」って
いつも思ってたら「今は、この人がすきだ」の間違いだと思うよ、

IoT(インタラクティブ・モノの自動制御)が発達した

クラウドサインを超えた時代の世界
クラウドサインの進化する意味がわかるよ


========

ゲームプログラミング、インキャリ(遊び方がわからないけどなんか遊んでみる、みたいな)
ゲームクリエイター

遊び方は?
なんだろう、「FEATURE」みたいな??ゲームシステムなんだろうな(笑)

これを利用してなにか動きをつけることがあるでしょうか?


========


========
人が何人いるかわからない

ゲーム内デートが定番
キャリアを選択
ゲームに潜り込む
その他のスポッチャやゲーム機を借りる




競技プログラミングが当たり前の人にスポーツは有害

スポーツが嫌いな人は競技プログラミングをやりたがる
競技プログラミングが嫌いな人は競技プログラミングにハマる

競技プログラミングにハマれば、競技プログラミングを選ぶ

競技プログラミングが流行らないのも、競技プログラミングそのものを否定している

ちゃんと動いてますね。以上です。もっといろいろ遊んでみたいと思います。
同じような状態の方の参考になれば幸いです。

6
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1