Python
Python: GPU 加速 FFT DFT 計算
前言 之前讀碩班常常要用 FFT 來處理光學的問題,通常都是會用 MATLAB 來撰寫程式,如果矩陣比較大也可以直接用 MATLAB 的 gpuArray 指令,來用 GPU 加速運算,使用起來非常方便,但是到了 Python 就沒有內建這些加速功能,好在 Python 的優點就是有非常完整的套件可以幫助我完成一些原本在 MATLAB 的工作。 這邊會介紹兩種工具,分別是 CuPy 以及 PyVkFFT。 CuPy CuPy 是兼容 NumPy、SciPy 的 GPU 加速函式庫。簡單講就是 NumPy 的數學運算都可以直接轉換成 CuPy 的 API,所以要將原有的程式改寫成 GPU 加速會 …
初探 TensorFlow Serving on …
前言 這是前一陣子要嘗試使用 TensorFlow Serving 的實作,但是過程踩不少坑,許多資料都是基於 Linux,而 Windows 的架設文章,我都無法完全照做,因此紀錄一下自己的過程,給想在 Windows 上練習的人能多一點參考XD。 內容其實是從其他網站參考出來,包括範例程式之類的,但是最重要的是自己實作過程,以及其中躍過的坑,這才是我要記錄的主要原因。 極簡介紹 TensorFlow Serving 顧名思義,就是將我們訓練好的模型,建置一個服務器 (伺服器) 來供用戶使用其功能,這也意味著,將會同時開放給多位用戶,甚至需要同時處理這些用戶的請求,正因如此,如果只是用一般的 …
Python: AttributeError: …
執行 Python 出現以下錯誤 AttributeError: module 'enum' has no attribute 'IntFlag' 解決辦法 主要原因是 enum34 與現有 Python 不相容 安裝 Python3.6 之後有新的 enum 的 package,所不會用到 enum34 了,可以直接砍掉。 pip uninstall -y enum34 這問題之前也有遇過,好像都是我在用 Python 寫 UI 介面時發生的,這次是試著使用 PySide2,來執行程式,所以安裝新的 Python 3.7 的 Conda 環境,久違出現這個錯 …
Jupyter Notebook: 設定 Cell …
如果今天使用 Jupyter Notebook 時,用了非常多個 Cell Block 會導致整個頁面非常凌亂,如果可以設定一個隱藏按鈕或是toggle的功能,在不同區塊之間除錯也會比較容易,而這部分可以藉由插入 Jupyter 的 JavaScript API 來完成。 程式碼 from IPython.display import HTML import random def hide_toggle(for_next=False, hide_output=False): this_cell = …
Python: NumPy 使用亂數種子來重現亂數 …
random.seed() 使用方式 import numpy as np for _ in range(5): np.random.seed(10) a = np.random.random((10,)) print(a) Output [0.77132064 0.02075195 0.63364823 0.74880388 0.49850701 0.22479665 0.19806286 0.76053071 0.16911084 0.08833981] [0.77132064 0.02075195 0.63364823 0.74880388 0.49850701 0.22479665 …
Jupyter Notbook: 在 cell …
前言 由於需要在同一個.ipynb中重新載入os.environ設定,以方便切換 tensorflow <–> theano,所以直接在 cell 中使用重啟功能。 在 Jupyter Notbook 的 cell block 中設定 restart。 from IPython.core.display import HTML HTML("<script>Jupyter.notebook.kernel.restart()</script>") 實際使用 # In[0] import keras # load tensorflow …