Anaconda環境下GPT2-Chinese的基本使用記錄


環境准備

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上跑比較方便,基本環境都有,訓練的速度也會快很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM