- 偶然在看到了這個專案,感覺很厲害,于是就折騰了下,跑了一跑
- 專案地址:https://github.com/Morizeyao/GPT2-Chinese
- 如果Github下載太慢的可以用這個代下載:https://toolwa.com/github/
環境準備
1.pytorch 的安裝
由情況選擇版本安裝,安裝CPU版本梢簡單
# 安裝時官方源下載比較慢,要換源
conda install pytorch torchvision cpuonly -c pytorch
# 如果cnda裝不了 選擇pip的方式進行安裝
# pip也要指定源
pip install torch==1.5.1+cpu torchvision==0.6.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
Anacoda 換源
onda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 設定搜索時顯示通道地址
conda config --set show_channel_urls yes
使用后在用戶-username-.condarc可進行編輯
如果要建立自己的詞表的話,要安裝tensorflow,版本要對上,否則可能會出錯
# Current stable release for CPU and GPU
pip install transformers==2.1.1
安裝成后,執行以下驗證安裝效果
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
#報錯
DLL load failed: 找不到指定模塊
Failed to load the native TensorFlow runtime.
安裝VC++2019就能解決問題了
- 64位地址:x64
- 32位地址:x86
如要在cmd或GitBash中使用conda 命令要配置Anaconda的環境變數,
conda env list #列出已有環境
conda info -e #列出已有環境
conda create -n env_name python=version #創建一個新的虛擬環境
conda activate env_name #激活并進入虛擬環境
conda deactivate #退出虛擬環境 進入標準環境中
conda env remove -n env_name #洗掉一個已有的虛擬環境
conda install package_name #下載安裝包
conda install package_name=version #下載包同時指定版本
conda remove package_name #洗掉包
conda list #列出已經安裝的包
codna search package_name #查找包的版本資訊
codna install package_name -n env_name #管理指定虛擬環境的包
pip freeze > d:\superset.txt #匯出本虛擬環境
pip install -r d:\superset.txt #匯入虛擬環境
conda env export --file d:\superset.yml #匯出虛擬環境
conda env create -f d:\superset.yml #匯入虛擬環境
conda create -n superset2 --clone superset #虛擬環境備份
來源:Anaconda與windows cmd環境的使用與基本命令
如此在GitBash中可能還是會遇到一個問題,Anaconda虛擬環境激活不了,報錯:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
可以執行以下命令后就能激活環境了:
# 激活環境
source activate
# 退出環境
source deactivate
來源:Git Bash使用conda命令activate env
開始訓練
剛開始遇到的問題就是編碼的問題,我的語料是放在train.json中是UTF8的編碼
如果要執行.sh的腳本要使用Gitbash
如果樣本的量比較小的時候,可以自己生成詞庫,減少亂碼的可能,
同樣遇到了這個問題,是詞庫導致的,默認使用的是cache/vocab_small.txt,里面13317個單詞,包括各種符號,當樣本量小的時候,結果就會有很多亂碼,可以根據自己的data,生成vocab檔案(當然這樣的話,單詞來源受限于樣本了) 步驟如下:
# 生成vocab_user.txt檔案
cd cache/
bash make_vocab.sh
# 根據vocab_user.txt內單詞個數,調整組態檔config/model_config_small.json的vocab_size欄位
# train
python train.py --raw --min_length 4 --tokenizer_path cache/vocab_user.txt
# generate
python ./generate.py --length=50 --nsamples=4 --prefix=你好 --fast_pattern --tokenizer_path cache/vocab_user.txt
來源:生成的文本都是亂碼
issue#88
注:自己的機器,特別是只要CPU跑的話,即使語料很小,也要很久,推薦有能力的朋友在Colab上跑比較方便,基本環境都有,訓練的速度也會快很多,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/86789.html
標籤:Python
上一篇:雜碎小知識——基礎階段
下一篇:309最佳股票買賣時機含冷凍期
