公告版位
從小害怕寫作文, 文筆不佳到現在, 還請各位讀者大大:
1. 發現有錯誤, 請留言告知. (或者你 '覺得' 不對也行)
2. 用字措辭不當, 請留言告知.
3. 有看沒有懂? 幫到忙也好, 幫倒忙也罷, 總之留個言吧.

目前分類:python (8)

瀏覽方式: 標題列表 簡短摘要

重要提示


  • TF 2.10 是 Windows 平台上 原生環境最後一版可以支援 GPU 的版本.
  • 如果需要在 Windows 中使用 TF2.11 及以後的版本, 請改用WSL 2 環境.

前言


這個主題大概是所有平時只用 Windows 的人士心中永遠的痛 (尤其是不懂系統, 或者不十分了解系統的人). 其實 Linux 用戶也好不到哪裡去啦 (如果你不是 Linux 上系統工程師), 差別只是無解有點希望. 不過這個問題在 Win10/Win11 上現在幾乎已經完全解開, 不再是無解的問題了.

目前在 Win10/Win11 平台上, 要啟用 GPU 對於 TensorFlow 的支援, 可用的作法可以分為四類:

  • 使用 Windows 原生環境 (及 Python 虛擬環境)
  • 使用 WSL2 環境
  • 使用 docker 環境
  • 使用 Anaconda for Windows 環境

不過在開始安裝之前, 各位有二件事要決定一下:

文章標籤

MagicJackTing 發表在 痞客邦 留言(2) 人氣()

Unicode 的誕生背景


最早電腦使用的字元編碼都是 ASCII. ASCII 作為美國的計算機編碼標準, 理所當然的只包含了英語的 26 字母大小寫, 再加上一些常用符號. 後來因應一些非英語系國家/地區需要, IBM 將 ASCII 編碼擴充加入他們各自所需要的一些特殊字元, 是為 code page. 例如: code page 437 是原始的英文頁碼; code page 858 是帶有歐元符號的多語言頁碼 (我們用的正體中文是 code page 950). 所以 DOS, Windows 作業系統上有 chcp 指令可以查訽/切換不同的 code page.

但是這只解決了區域性的交流問題. 國際交流上的問題依然存在(註一). 例如: 亞洲語系的問題, CJK 字元編碼統一的問題... 於是有了 Unicode 聯盟, 致力於制定標準, 並努力的將全球各種文字符號的編碼統一, 以利於資訊的交流.

註一: 主要是因為可使用的編碼數只有 256 個, 而不同 code page 之間會對應不同的符號, 進而無法得知資訊的原始樣貌.

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

Python3


Python3 已經支援 unicode, 所有的 .py 檔, 預設都是 UTF-8 編碼, 有沒有附帶 unicode BOM (Byte Order Mark) 都可以. 所以只要使用預設是 UTF-8 的編輯器 (例如: VS Code 或者在 Win10 下使用 notepad) 建立新的 .py 檔即可.

但是直接用 Python3 執行非 UTF-8 編碼的 (例如: Big5, UTF-16 BOM, UTF-16 no BOM 等編碼) .py 檔, 就會出錯 (Non-UITF-8 code). 例如使用 Python3 執行 Big5 編碼的這一段程式:

text = '字串測試'
print(len(text))
文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

前言


原本在 python 裡安裝 Jupyter 環境並不是什麼大事, 不過因為最近微軟的底層 library (ucrtbase.dll) 當中的 fmod() 函數, 修正修出了一個 bug (只要 Win10 更新至 2004 及 20H2 就會出現, 參考: 微軟 developercommunity 網站), 使得眾多需要用它的軟體 (例如: 線性代數函數庫) 都出了問題. 並且要到下一次更新時才會解決 (20H2 的下一個版本) 因此整個使用 windows 平台的 AI 及大數據相關的底層函數庫不得不做出一些更動. 像是 numpy 就決定: 原本最新的版本 1.19.4 不更動, 等候 MS 把問題解決, 問題就自解了 (因為其他平台並沒有這個問題); 但是相對的, 為了讓 Windows 平台上必需使用 numpy 的其他套件可以有暫時的解決方案, 而更動了 1.19.3 版進行暫時性的修補.

2021-01-13 更新:
numpy 已經釋出 1.19.5, 上述問題已經由新版的底層 OpenBLAS 函數庫解決. Windows 用戶安裝 numpy 已經不需再另行指定版本. (但是還是要注意是否避開了 1.19.4) MS 的修正應該是會隨著 21H1 一起發布.

文章標籤

MagicJackTing 發表在 痞客邦 留言(2) 人氣()

前言


前幾天 (寫完其實已經過了一個多月了), 在 Windows10 上, 遇到了一個非常機車的問題: Python for Window 的執行檔 python.exe 被 Anaconda 版的 python.exe 綁架了.

狀況是這樣的, 最近去上了大數據/AI的課, 上課時教 python 的老師用的是 Anaconda 所提供的 Jupyter Notebook 環境, 所以同學的電腦上安裝的都是了 Anaconda 個人版 (Individual Edition) for Windows. 而我個人則是標新立異愛作怪, 用 Python 內建的虛擬環境, 再加裝上 jupyterlab 相關的 package, 還有其他上課所需的 package 來應付上課時的需求. (其實是因為上課之前試用過 Anaconda, 覺得它真的太肥了, 而且 Anaconda 整體反應有點 lag. 所以決定改用 python 內建的虛擬環境的功能內建置 jupyterlab 環境...)

其實, 說起來 Anaconda 對於一個 python 初學者同時又對電腦運作不甚了解的人來說, 算是一個不錯的選擇. 它以容易上手的圖形環境展現給一般使用者, 同時又預設好 jupyter notebook 網頁, 讓初學者可以只專注在學習 python 上. 可惜的是, 它的圖形系統有點厚重. 和它在 CLI 環境的輕便好用完全是二回事. 好了, 廢話不多說, 來看看到底發生什麼事?

文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

Windows 平台的安裝建議


在 Windows 安裝多個版本的 python 你需要注意以下幾點:

  • 使用一致的 '系統安裝' 或者 '用戶安裝'. 也就是第一個版本的 python 你是用 '用戶安裝', 以後就都用 '用戶安裝'. 不要一個是 '系統安裝' 下一個卻是用 '用戶安裝'. (這樣子當 Python 環境出現問題時會比較容易排查)
  • 在可行的狀況下, 盡量是用 '系統安裝'. 除非是要不到系統管理者權限無法進行 '系統安裝', 才改用 '用戶安裝'.
  • 除了最常用的版本之外, 其他的版本不要加進環境變數 PATH 裡 (即安裝時, 第一頁的 "Add Python 3.x to PATH" 不要勾選). 如果已經裝錯了, 可以直接使用 '編輯系統環境變數' 來刪掉它 (一般是有二個 C:\Program Files\Python3x\Scripts\C:\Program Files\Python3x\).
  • 使用時請配合使用 python 虛擬環境 (強列建議), 或者參考以下說明:

文章標籤

MagicJackTing 發表在 痞客邦 留言(10) 人氣()

Python 自 3.3 版開始提供虛擬環境 (PEP405, virtual environments in core, Sept. 29, 2012).

個人以為主要是為了清理出一個乾淨開發環境, 以便將來部署時不會多出一些有的沒的 package:

  • 別的專案用的, 而且這個專案用不到的.
  • 正在測試學習的.
  • 或者猜想著這個 package 到底是有沒有用到 (不曾記得安裝過, 但實際上是因為和另一個 package 相依而自動安裝進來了).
  • 避免 package 和 python 本身 (以及其他 package) 不相容的問題. 同時也可以避免這些多出來 package 引發不相容的問題. (小弟不才只寫過二個 python 小專案, 引用的東西不多, 所以一直沒有遇到)

新版本的 python 可能或多或少會和一些 package 不相容(註一), 尤其像是當年 python 3.0 那樣的大改版. 但是各個 package 之間的版本相依性也是經常會引發問題. 使用虛擬環境可以讓我們在構建專案時把環境先弄好, 並鎖定為專案的專用環境, 不必擔心因為別的專案的需求而弄壞了這個專案的環境.

文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

前言


前一陣子用python寫了一支 Windows 的 Console 程式: 因為需要為程式的輸出訊息加一點顏色而小小的 '卡' 了一陣子; 上個月底終於把它解決了, 特別記錄一下免得日後給忘了.

為 Console 輸出上色


這個 Console 上色的問題, 因為不是主要的功能, 所以一開始只解決了一半, 就一直放著: 輸出 ANSI Terminal 的控制碼可以在 git for windows 的bash視窗上更改輸出訊息的顏色; 但是一換到 Windows CMD Console 執行時這些 ANSI Terminal 的控制碼就完全沒有效果, 只是一五一十的印出來.

上個月底總算把程式的主要功能寫完測完, 因此回頭解決它. 但是, 在 Google 上爬了許久 (主要都是 StackOverflow 網站), 大部是說需換掉 Windows CMD 讓它可以支援 ANSI Terminal 的控制碼就可以了. 可是這並不是我要的答案. 其中也有試著下載一些其他的模組, 大部份試不下去的原因都是因為在 python for windows 環境下並沒有 termios 這個模組可用. 直到看到有人回覆說用colorama模組就可以解決, 不過也試了幾次才順利把問題解決.

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼