# <font class="h2">**MX-Font 公用機/北科AI運算平台V100**</font> <style> .h1 { background: linear-gradient(135deg,#fff,#FF95CA) ; color: #BF0060; display:block; padding: 6px 5px; border-radius: 4px; } .h2 { background: linear-gradient(180deg,#fff 50%,#FF95CA) ; color: #BF0060; display:block; padding: 6px 5px; border-radius: 8px; border-bottom: 3px solid #BF0060; } </style>  [TOC]    **Github:** https://github.com/clovaai/mxfont !!!電腦要有 <font color="hotpink">**NVIDIA GPU**</font>!!! (不推薦用公用機,有次跑起來大概5分鐘它就自動關機,可能 GPU 快壞掉) ## 北科AI運算平台 V100 使用 ### 如何使用 --- **STEP 1**  **STEP 2**  **STEP 3**  **STEP 4** 進到 Terminal 即可使用  --- ### 容器環境 CUDA:11.3-CUDNN8  ### 安裝 pytorch ``` # CUDA 11.3 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch ``` ## 前置環境條件 ### 環境 **Requirement** ``` * Python > 3.6 * pytorch >= 1.5 * sconf, numpy, scipy, scilit-image, tqdm, jsonlib, fonttools ``` **建議使用虛擬環境** ``` conda create --name mxfont python=3.8 conda activate mxfont git clone https://github.com/clovaai/mxfont.git cd mxfont ``` ### Install ``` conda install numpy scipy scikit-image tqdm jsonlib-python3 fonttools ``` (有時 jsonlib-python3 在 conda 無法安裝,改使用 pip install ) <font color="hotpink">**⇓ ⇓ ⇓**</font> ``` conda install numpy scipy scikit-image tqdm fonttools pip install jsonlib-python3 ``` ### 使用以下確認是否有CUDA ``` >python >>>import torch >>>torch.cuda.is_available() ``` # Error 錯誤訊息 (Train) 如果出現以下錯誤訊息可以根據以下方法排除。 ## UnicodeEecodeError: 'cp950'... `UnicodeDecodeError: 'cp950' codec can't decode byte 0xc3 in position 116: illegal multibyte sequence` 錯誤:要提醒 Python 我們要讀取的檔案是以 UTF-8 的編碼。 解決辦法:在 `mxfont/datasets/ttf_dataset.py` 第 218 行加上 `encoding="utf-8"` 即可解決。  ## RuntimeError: indices should be either on cpu... `RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu)` 錯誤:有部分在 CPU 執行,有部分在 GPU 執行。 解決辦法: 1. 從 CPU 轉到 GPU (cuda) 中 2. 從 GPU (cuda) 轉到 CPU 中 以下為方法2,從 GPU (cuda) 轉到 CPU 中。 在 `mxfont/trainer/trainer_utils.py` 第 107、108 行的 `cuda()` 改為 `cpu()`。  ## torch.cuda.OutOfMemoryError: CUDA out of memory. `torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 11.00 GiB total capacity; 10.18 GiB already allocated; 0 bytes free; 10.23 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF` 錯誤:GPU 記憶體容量不足。 解決辦法:batch_size 改小一點。 在 `mxfont/cfgs/defaults.yaml` 改變 <font color="hotpink">**batch_size 值**</font>。  <font color="hotpink">★ **使用以下可以觀察 GPU 記憶體使用量**</font> ``` nvidia-smi ``` ``` pip install gpustat watch gpustat ``` # TRAIN 訓練 ``` python train.py cfgs/train.yaml ``` <font color="hotpink">★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★</font> `mxfont/data/ttfs/` 路徑下的資料夾放 Source 和 Refence 字型檔。 可用 `mxfont/get_chars_from_ttf.py` 轉 .txt。 (有些字型會失敗,不確定原因,不過可以自己設定所以影響不大) 此 txt 檔為要訓練的字,也可<font color="hotpink">**自行設定**</font>。 出現以下就代表已經開始訓練!!  在`mxfont/result/images/`能觀察到訓練結果。 每 10000 step 會存一次結果。 (總 step 數 預設 800000,可到 `mxfont/cfgs/defaults.yaml` 中的 `max_iter` 修改參數) <font color="hotpink">★ **公用機**</font> 跑到 step 50000 就自己停止(有可能是空間不足?)花了 15 hrs 左右 <font color="hotpink">★ **北科AI運算平台**</font> 跑到 450000 step 花了 103 hrs 左右(相對公用機速度較快) # TEST 生成 ``` python eval.py cfgs/eval.yaml --weight generator.pth --result_dir path/to/save/images ``` <font color="hotpink">★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★</font> *--resultdir path/to/save/images: 參考風格圖像路徑* `mxfont/data/chn_gen.json` 為訓練完生成的字集 Unicode。 `mxfont/cfgs/eval.yaml` 中的 `test: - data_dir: path to reference image` 放的是<font color="hotpink">**參考風格圖像**</font>路徑 <font color="red">**注意**</font>: 參考圖片要轉<font color="hotpink">**灰階**</font>變單軌(RGB為三軌)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up