2022年3月27日 星期日

cifar-10圖片分類任務初體驗--使用 pytorch lightning

CIFAR-10(https://www.cs.toronto.edu/~kriz/ cifar.html) 是由 60000 個屬於 10 個分類的 RGB 影像(32×32)組成的(飛機、汽車、鳥、貓、鹿、 ...)。使用pytorch lightning 的 官網教學,可以輕易在一個筆記本中試玩 三個模型: GoogleNet/Inception (winner of ILSVRC 2014), ResNet (winner of ILSVRC 2015), and DenseNet (best paper award CVPR 2017)。

有趣的是,我在測試其它的資料時,也發現了 SGD 優於 ADAM 的情況。遇到時反正就兩個都試試吧~~



2022年3月21日 星期一

PyTorch Lightning 初探--高度抽象化的機器學習架構

pytorch  的程式碼已經相當簡潔了,但是面對海量的架構,還有沒有更更更更簡化的可能呢? 有的, PyTorch Lightning 就是你要的。 假日硬啃了一遍,真是被網路上一些過時的教程害死。接下來就是浪費了一個週末得到的血淚心得XD

  1. 你的聖經就是 HOW TO ORGANIZE PYTORCH INTO LIGHTNING ,因為版本迭代實在太快,大概半年就翻了一翻,千萬不要,再次強調,千萬不要看半年之前其它神人的神文。神人再神,也沒時間去更新這些教程:)
  2. 安裝套件的最新穩定版本。 anaconda  的管理程式不知為何建議了一個非常舊的版本,加倍了我除錯的工作,令人印象深刻。
  3. 你會想用  tensorboard 的
    from pytorch_lightning.loggers import TensorBoardLogger
    logger = TensorBoardLogger("tb_logs", name="my_model")
    trainer = Trainer(logger=logger)
  4. 你會想限制 epoch 次數/時間的
    trainer = Trainer(max_time="00:12:00:00", max_epochs=10)
  5. 請在 LightningModule 乖乖的實作 train_dataloader 等函式,那是讓程式決定 batch size 等參數的途徑。不要沿用原來的載入方式
  6. training, validation, predict 是主要的需實作函式, test 不是;不少 pytorch 的 test 其實指涉到 lightning 的 predict ,請格外注意;會實作 training, validation, test 的可能偏向 nlp 的 transformer based language model
  7. lightning 本身沒有辦法推進準確率或降低 loss,有時間我會建議試試 Optuna 

2022年3月17日 星期四

語音辨識初探

俗話說,好的 notebook 帶你上天堂 (誤) 。 一個可以快速上手、執行、修改、測試的原型是學習的捷徑,而 github 上大量的 ipynb 檔剛好符合這些要求。

Automatic Speech Recognition (ASR) 使用 keras 套件,整個文件充滿大量圖解,是非常非常好的學習起點。

speech_end_to_end.ipynb 與上一支程式一樣使用 LibriSpeech 來做為訓練素材,使用 pytorch 套件

PyTorch 模型建構與訓練基礎介紹 如其名

dla-2/reproduce.ipynb 較複雜的架構,使用 command speech 做為訓練素材




2022年3月15日 星期二

windows 10 下執行 tensorboard 時的錯誤(重開機後無法連線、換專案後仍顯示原專案資訊,…)

由於作者沒預期到會有 windows 使用者,依慣例將執行行程資訊寫到 C:\Users\XXXX\AppData\Local\Temp\.tensorboard-info ,而沒有清除。 解決方式目前看來是將   .tensorboard-info 下的檔案們刪掉,並且查看工作管理員是否有未結束的 tensorboard 程式,若有也請一併關閉它。



2022年3月14日 星期一

vFlat Scan - 你的移動圖書掃描器

 偶爾有需要把數十年前的紙本書電子化,之前都要跑圖書館借掃瞄器,但是今天一時興起想買一台之前看過的輕便型,卻發現這個神器 vFlat 。這個 app 是利用手機的相機逐頁照相後,修正形變並進行 ocr ,可以做後續的處理或直出 pdf 檔。我用完之後下巴快掉下來了,真是太 好 用 啦~~



2022年3月12日 星期六

ckip-transformers 初探(一) 自然語言處理工具(包含斷詞、詞性標記、實體辨識)

主頁在 https://github.com/ckiplab/ckip-transformers

繁體中文的 transformers 模型(包含 ALBERT、BERT、GPT2)這次先跳過,有空再來玩玩

安裝

pip install -U ckip-transformers

測試

git clone https://github.com/ckiplab/ckip-transformers.git

cd ckip-transformers

python example\example.py




2022年3月11日 星期五

tensorflow 在 win10 上的安裝

安裝環境及版本

顯卡:NVIDIA GeForce RTX 3050 Laptop GPU

OS:Windows 10 Home, 64-bit

Python 3.8.*(pytorch目前最高只支援到3.8; 建議使用 anaconda 以利試誤)

TensorFlow 2.8

CUDA ToolKit 11.3(pytorch目前最高只支援到11.3; 建議使用 anaconda 以利試誤)

cuDNN 8.3

安裝 CUDA Toolkit 11.3

1. NVIDIA官網下載CUDA Toolkit 11.3 安裝檔,並且執行。

2. 查看CUDA安裝版本

nvcc --version

安裝cuDNN 8.3

1. NVIDIA官網下載cuDNN (需免費註冊帳號)的壓縮檔 (抓安裝檔執行後仍需進行以下步驟)

2. 將壓縮檔內bin、include、lib子資料夾複製到下列資料夾:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\

(這一步是最令人費解的,為何不讓安裝檔直接找到應該安裝的位置呢? 總之詳參 3.3. Installing On Windows )

安裝 TensorFlow & pytorch

1. 安裝指令

pip install tensorflow

2. 查看TensorFlow安裝版本

pip show tensorflow

3. 安裝 pytorch 

conda install pytorch torchvision torchaudio PySoundFile cudatoolkit=11.3 -c pytorch

4. 查看 pytorch 安裝版本

python -c "import torch ; print(torch.__version__)"

檢測是否完成安裝

1. cmd 下執行

python -c "from tensorflow.python.client import device_lib;print(device_lib.list_local_devices())"

若出現 gpu 等字樣代表安裝成功

2. 或 cmd 下執行 python 

>>import tensorflow as tf

>>import os

>>os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

>>print('GPU', tf.config.list_physical_devices('GPU'))

若出現如下訊息,代表安裝成功

GPU [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

(亦可參 Win10 安裝 CUDA、cuDNN 教學 有較詳細講解),作者是大正妹)