Mac 的 AMD 顯卡於 Keras 加速解法 – PlaidML

Apple 近幾年所推出的 MacBook Pro / iMac / Mac mini…. 都是 AMD 的顯卡,沒有 Nivida
且 Nvidia 最近也沒什麼官方支援 Mac 的 Driver 了 ( 所以透過 eGPU 來在 Mac 上使用 NV 卡好像不是太好的選擇 )

然而 Tensorflow 之類的 Tool 都是使用 CUDA 來加速的
( Google 官方也移除了 Mac 上的 tensorflow-gpu )
讓 MacBook Pro 的 AMD User 好像覺得只能使用 CPU….
空有強大的顯卡卻無用武之地
( 本人的 MacBook Pro 是使用 Radeon Pro 系列… 另外在 Mac 上 AMD 應該沒啥驅動的問題 )

但是如果是使用 Keras 且配 AMD 卡的人就不用擔心了
因為今天要說的就是如何使用 Keras + AMD GPU ( Mac 上還有 Metal ) 的解決方法 就是使用 PlaidML
https://github.com/plaidml/plaidml 使用上很簡單
直接 pip 安裝,ex :
pip3 install plaidml-keras plaidbench

然後輸入指令
plaidml-setup
會看到類似以下資訊
Default Config Devices:
   No devices.

Experimental Config Devices:
   llvm_cpu.0 : CPU (LLVM)
   opencl_intel_intel(r)_hd_graphics_530.0 : Intel Inc. Intel(R) HD Graphics 530 (OpenCL)
   opencl_cpu.0 : Intel CPU (OpenCL)
   metal_amd_radeon_pro_460.0 : AMD Radeon Pro 460 (Metal)
   opencl_amd_amd_radeon_pro_460_compute_engine.0 : AMD AMD Radeon Pro 460 Compute Engine (OpenCL)
   metal_intel(r)_hd_graphics_530.0 : Intel(R) HD Graphics 530 (Metal)

Using experimental devices can cause poor performance, crashes, and other nastiness.
Continue reading “Mac 的 AMD 顯卡於 Keras 加速解法 – PlaidML”

德文與英文的數字聽力測驗

最近覺得,需要對於英文數字與德語數字的聽力加強
所以寫了這個簡單的小 Python Script 會產生隨機的數字與位數 ( 可以自己動手修改 )
用來訓練自己對於語言的聽力與語感
但是這部份只有在 Mac 上有用
( 因為是用內建的發音,且只是簡單做的 ) Source Code 可以於 GitHub 下載 :
https://github.com/Seachaos/SeaToolbox/blob/master/NumberGuess/number_guess.py
簡單說一下參數

Continue reading “德文與英文的數字聽力測驗”

Sklearn 的 OneHotEncoder 說明與簡單範例

Sklearn 是 Python 機器學習 ( Machine Learning ) 或資料分析中一個好用的工具,其中 OneHotEncoder 是可以將特徵扁平化的工具,配合  LabelEncoder 使用效果更好,這邊做一個簡單的用法說明教學

例如有以下資料 :

data = [ ['cat', 1], ['cat', 2], ['dog', 3], ['cat', 2], ['fish', 0] ]

第一步就是先用 LabelEncoder 將 cat,dog,fish 變成 0,1,2 來方便後續資料處理

( 別忘記先轉成 numpy array 比較好處理,   ndata = np.array(data) )

# 將 cat, dog, fish 分類, 成 0, 1, 2
ndata[:, 0] = LabelEncoder().fit_transform(ndata[:, 0])
"""
        type
array([['0', '1'],
       ['0', '2'],
       ['1', '3'],
       ['0', '2'],
       ['2', '3']],
      dtype='<U4')
"""

 

接下來用 enc = OneHotEncoder().fit(ndata) 來取得一個 OneHotEncoder 編碼器 ( enc )

 

Continue reading “Sklearn 的 OneHotEncoder 說明與簡單範例”

Python Matplotlib 簡單繪制圖表教學 ( 折線圖 )

Python 的 Matplotlib 的可用來繪製簡單的折線圖,例如 N 路線圖 或是 數據圖

只要使用 plt.plot ,給 X, Y 值就可以畫出圖表例,例如

這邊說明一下, plt.plot 有不同的參數可以做出不同的線或是點

plt.plot(x, y, 'o') # 只有點
plt.plot(x, y) # 只有線( 預設 )
plt.plot(x, y, '-o') # 點和線
plt.plot(x, y, '--o') # 點和虛線

Continue reading “Python Matplotlib 簡單繪制圖表教學 ( 折線圖 )”