2023年12月31日 星期日

2023 年第 52 周記事

2023 最後一周終於結束了, 今晚邊參加資料科學小嫩嫩社群派大的 LLM 分享會邊打周記, 聽了一整年的 AI 課程 (內訓 + 社群), 蓄積了不少知識力, 也該捲起袖子幹點實活了, 明天我就要儲值 5 美元開始來測試 OpenAI API 了, 2024 會是非常忙碌的一年. 

本周暫停了 Hahow 企業版的學習, 靜下心讀點書整理筆記, 因為想看的都看完了, 應該回頭做重點複習強化戰果才對. 最近我對 Hahow 一般版的 "互動藝術程式創作入門" 這門課有高度興趣, 因為它是講 p5.js 的, 我以前曾花了些時間做初步測試, 覺得很讚, 但怕買了之後又給我在企業版上架, 所以遲遲未從購物車結帳. 一方面也是因為還在忙 AI 時間不夠, 再等一個月看看, 反正我投資自己向來不手軟.

年底連假三天, 本周水某與我回鄉下, 她說想參加今年高雄元旦升旗典禮, 有發 5000 張龍年一卡通, 我從不參加這種活動, 但想想下一個龍年我已 70 歲, 好像應該去體驗一下才對, 但這樣今天晚上就得回高雄, 這要又覺得連假似乎被切割了. 傍晚水某從岳父農舍回來, 我問她要不要去, 結果打了退堂鼓, 因為查了網路發現要很早 (6 點) 去排隊裡號碼牌, 好像會爬不起來. 也是, 過去幾十年都沒參加過, 似乎也只是個儀式感而已. 

鄉下家的四隻貓中, 小黑與小花兩兄弟離家未回已超過三周, 看來是真的回不來了. 雖然不像之前毛小咪四兄弟離家不回那樣掛念, 但仍會感到淡淡憂傷. 養貓多年我對貓是養出感情, 對於常見的突然消失難免還是會有點感物傷懷. 

老家新牽的自來水管線上周水電師傅日和已掛表接管完成, 我週四打電話問水公司裝在張家伙房大門口的舊錶要如何處理, 答覆是要申請廢止, 如要保留須辦理過戶, 同一名下只能有一個水號. 我是想過戶到我名下, 可用來在旱季時給菜園澆水用, 但後來又覺得沒有用也需繳 70 元基本費似乎浪費. 舊曆年後再來處理. 

從 11 月初開始的 16 堂生程式 AI 內訓課程終於再本周結束, 每周二與四晚上七點半我都準時上線聽呂道誠老師講課, 坦白說我常聽到一半就睡著了 (是太累了), 所幸我都有錄影, 元旦後要找時間重看 (特別是最後四堂關於模型微調部分). 

Windows 媒體播放器掛字幕檔與更改字幕顏色的方法

在電腦中播放英文發音的 mp4  影片時常常因為講者口音很重而無法理解內容, 這時若影片有附 SRT 之類的字幕檔就能幫助理解. 在 Windows 內建的影音播放器中, Media Player 無法掛字幕檔, 必須使用媒體播放器才行, 其加掛字幕檔的方法如下 :


1. 掛上字幕檔 :

 點擊媒體播放器右下角音量左邊的 "語言與字幕" 按鈕 :




選取 "選擇字幕檔案" :  




這會開啟檔案總管, 點選同目錄下與 mp4 影片同樣主檔名的 .srt 字幕檔 :




這樣播放時就會在下方出現字幕了. 


2. 更改字幕文字顏色 : 

字幕預設是黑色, 遇到黑底影片時會看不到字幕, 須改為其他顏色 (例如紅色, 影片通常不會用紅色當底色), 但字幕文字顏色不是在媒體播放器設定, 必須在 Windows 設定中更改, 在 Win10 點選 "設定/輕鬆存取/隱藏式輔助字幕", 然後在右邊 "字幕色彩" 項點選希望的顏色即可 : 





設定好後播放 mp4 影片就會出現指定顏色的字幕了. 

2023年12月29日 星期五

參加 MQTT 社群年終活動

今天去市圖取書回來才發現向母校調借的書也已到館, 吃過晚飯趕緊去取書, 然後趕回來參加 19:30 的 MQTT 社群年終活動. 我其實是一邊測試 gradio 一邊聽眾大神演講, 講師有飆機器人的阿吉老師, 慧手科技的徐爸, 洪錦魁老師, 以及小霸王等. 看到阿吉老師就想到我那塵封已久的 Jetson Nano 與老師那本著作. 他結尾的一些感言我深有同感, 想法即使再多時間不夠也是白搭, 但做不完也不要熬夜. 另外慧手科技的語音模組也令我非常驚艷. 

# TinyML 很值得看

高雄客運國十旗美地區班車時刻表

月初在老家的地方刊物上看到刊登高雄客運國十旗美地區班車時刻表, 雖然我已數十年多年未曾搭乘高雄客運 (上一次應該是民國 78 年從台東猴子山退役返家時), 但有時親友來訪可能會用到, 所以就影印留存備查 :





以前都還要買票或投錢, 現在好像都改刷一卡通了. 

申請中華電信 IoT 智慧聯網大平台

我在旗標出版的創客自造者工作坊系列的 "用 Python 學 AIoT 智慧聯網" 這本書裡看到中華電信 IoT 智慧聯網大平台的介紹, 它跟其他 IoT 平台例如 Thingspeak 功能類似, 但不一樣的地方是大部分的平台都是英文介面, 而中華電信 IoT 智慧聯網大平台則是全中文介面. 

不過前陣子聽說此平台即將於明年停用, 所以趁今天年尾最後一個工作天註冊帳號來測試看看, 官網網址如下 :

https://iot.cht.com.tw/iot




按右上方的 "登入" 鈕 : 




按 "中華電信會員中心登入" 鈕 :




輸入中華電信會員帳號與密碼, 填寫圖形驗證後按 "登入" :





填寫必要欄位後按底下 "註冊會員" 鈕即完成註冊, 這時會彈出一個服務異動說明, 只能用到明年 3 月份, 之後僅限內部員工使用 :



 
按 "離開" 會詢問是否要建立專案 :



 
按 "是" 出現新增專案頁面 : 




填好按下一頁出現新增設備頁面 :




最底下有一個 18 碼的 "金鑰" 欄位, 在應用程式中需要使用此金鑰才能存取大平台服務. 按 "下一頁" 出現新增感測器頁面 : 




先新增一個溫度感測器, 填好後按 "儲存" 鈕出現 "新增完成" 頁面 :




按 "結束" 鈕完成設定, 出現專案管理頁面 :





按剛剛新增的專案鈕會顯示該專案詳細內容 :




API 教學文件參考 :


2023年12月28日 星期四

預購 Kendo 藍芽喇叭麥克風組

今天在臉書看到嘖嘖的 Kendo 藍芽喇叭麥克風組募資廣告, 喇叭 + 兩支麥克風組合 64 折 1280 元, 可以一鍵消人聲且有好玩的變聲功能, 是室內戶外 K 歌的好咪阿, 也可以用在市場叫賣, 或大教室上課教學用, 水某以前蠻喜歡 K 歌, 那就買一組來玩玩看 (刷 Line Pay) :








預計要明年 2 月才會到貨. 

春節前兩天到貨, 音量大不錯用, 說明書如下 :



2023年12月27日 星期三

料理實驗 : 用 Bruno 壓力鍋做蕃茄燉牛肉

今天在愛料理網站找到下面這個食譜 :


冰箱都有食材, 且菁菁今天要回家, 就來試做看看, 讓她帶去工作室唄! 

材料 :
  • 牛小排 1~2 塊
  • 洋蔥 1 顆
  • 牛番茄 2~3 顆
  • 蒜頭 2~3 瓣
  • 番茄醬 2 大匙
  • 米酒 2 大匙 (加啤酒更好)
  • 黑胡椒 適量
  • 鹽 適量
作法 :
  1. 洋蔥切丁, 蒜頭拍碎, 牛番茄切塊備用. 
  2. 牛小排切小塊用黑胡椒醃製 5 分鐘後用平底鍋煎至表面變白色, 加入洋蔥丁與蒜片炒香後放入 Bruno 壓力鍋, 加入牛番茄塊, 鹽, 番茄醬, 米酒, 加水至沒過食材.
  3. 按手動 4 分鐘加熱至洩壓即可. 



其實做法與馬鈴薯燉牛肉差不多, 我這次只是把胡蘿蔔換成番茄而已, 我不是加水, 而是照樣加啤酒來軟化肉質, 冰箱沒番茄醬了所以也從缺, 不過只用番茄味道就很足啦! 因晚上水某說去載菁菁回來時直接去吃五鮮級, 回來好飽菁菁也吃不下, 就整鍋明天帶去工作室唄.  

Windows 11 突然出現藍底 BitLocker 修復畫面

今天中午我的 LG Gram 筆電突然出現如下的藍底 BitLocker 畫面, 說要我輸入一個修復金鑰 :

 


我原先以為是中了甚麼綁架病毒, 仔細看不像, 裡面有提到 Microsoft. 但 BitLocker 是啥東西? 以前都沒聽過, 我用手機查詢, 原來這是 Windows 的磁碟機加密功能, 透過 AES 加密演算法產生一組 48 個數字字元組成的修復金鑰來保護整個磁碟分割區內的使用者資料, 只有知道金鑰者才能存取裝置上的資料, 參考 :


當 Windows 初次啟動登入 Windows 帳戶後, 會對儲存裝置 (即磁碟機) 進行加密, 完成後將產生的 BitLocker 金鑰自動備份到 Windows 帳戶中. 當Windows 偵測到可能是未經授權並嘗試存取資料的不安全狀況時就會要求輸入 BitLocker 修復金鑰, 這就是我的筆電會出現藍底 BitLocker 畫面的原因, 參考 :


有啟動 BitLocker 加密的磁碟機在檔案總管的 "本機" 中, 前面的圖示會有一個鎖 :




但要如何查詢修復金鑰呢? 從上面線索中可知金鑰會自動備份在 Microsoft 帳戶裡, 所以我用手機瀏覽器查詢 "Microsoft 帳戶" 找到微軟帳戶登入網址 :


輸入帳密 (Hinet + family) 登入後就出現 LG Gram 的 48 位數的修復金鑰了, 但出現兩組, 分別是 C 碟與 D 碟這兩個 1TB SSD 的修復金鑰 :





正要抄錄 C 碟的那組金鑰時, 我同時也將筆電重開機, 結果居然就直接進入 Win 11 沒有再出現要求輸入 BitLocker 修復金鑰的藍色畫面, 難道是它偵測到我已登入微軟帳戶了嗎? 不知道. 

既然成功進入 Win 11, 我也在筆電登入微軟帳戶, 可以看到所有綁定此帳戶的電腦 : 





點擊 "BitLocker 資料保護" 下方的 "管理修復金鑰" 就可以看到 C 與 D 碟的修復金鑰 : 




第一組是 C 碟金鑰, 9/16 是筆電初次啟動 Windows 的日期; 第二組是 D 碟金鑰, 日期 11/13 是維修鍵盤時順便請展碁工程師幫我安裝第二條 SSD 後產商的. 把這兩組金鑰記下來貼在筆電背後以備哪天又要叫我輸入金鑰. 

順便也記錄一下 LG gram 筆電的 Win 11 版本資訊 :




好站 : TW511 教學網

今天在測試 Python 的 Gradio 套件用法時找到下面這篇寫得完整又詳細的教學, 不能不推 : 


我以為還有 [二], [三] ,,, 等篇, 可惜沒有. 此教學網除了 Python 外還有其他非常多的 IT 教學文章, 可說是包羅萬象, 值得好好取經尋寶, 教學首頁如下 : 


2023年12月26日 星期二

國家級停車場

我把國家還給你, 請你把停車場還給我. 

Deal!

常用信用卡整理

又到月底要繳信用卡費了, 趁此機會將我常用幾張卡的非機敏訊息整理如下表, 主要是結帳日, 當要刷大筆金額時可以選擇刷剛過結帳日的卡, 這樣遞延效益會強一些 (人話是 : 不會一刷隔幾天就收到繳費單啦) :    


 發卡銀行 卡別 & 功能 額度 結帳日 繳款日 循環利率
 星展 Travel titanium (Master)  102.2 19 6 12.79%
 中國信託 Line Pay (JCB) + iPass 一卡通 10 1 1 7.58%
 玉山 Carrefour (Master) + 悠遊卡 20 15 2 5.88%
 台北富邦 momo (Master)  25 16 1 6.34%
 聯邦 大統百貨 Platinum (VISA) + iPass 一卡通 30 15 31 5%
* 除星展要/聯邦在 7-11 繳費外, 其他都可在全家繳費

前四張是目前最常用的, 主要是全聯, 家樂福, 以及 momo 買書用的 momo 卡這三張. 星展這張則是累積飛行里程點數用的, 居然額度開到超過 100 萬, 循環利率還是別家的兩倍嚇死人 (就是要我借多一點然後付多一點利息? 還是方便我刷卡買車? ), 我經常用這張卡 (加油+大額消費) 從未遲繳, 居然還給我開這麼高, 乾脆點數換禮品不要累積里程了, 改刷 Line Pay. 

好市多購買益節 MoveFree 加強型迷你錠

昨晚跟水某去好市多買阿咪它們的肉肉條時, 看到益節有在做特價, 原價 1385 折 215 元, 每瓶 1170 元, 就給爸買了兩瓶 : 




我之前買過好關鍵與樂捷給爸, 效果似乎不錯, 水某說她們醫師現在都推薦益節, 比較價格都差不多是每瓶 1300 元左右 (一瓶 60 粒兩月份), 那就改吃益節看看. 

參考 :


2023年12月25日 星期一

同事的退休歡送會

今天老同事鄭老大屆齡退休, 咱辦公室在 Team 會議後舉辦線上歡送會, 中午上司提供豐富的便當, 每次有人退休規格都不同, 有人到了靜靜的退休, 有時又擴大舉辦聚會, 十幾年前還在大禮堂舉辦, 載歌載舞, 現在是今非昔比啊! 

看到有人退休我是既羨慕又畏懼, 羨慕的是不用每天刷卡, 畏懼的是老之將至 (老大說他已收到市政府寄來的老人卡). 查了一下我的 GitHub 網站首頁, 我還要七年半左右 : 




七年其實很快就過去了, 我得好好規劃第二人生了. 最近想到一個不錯的工作 : 水電工, 應該趁退休前去職訓局參加水電工培訓班, 雖然是學電機本科出身, 家中的電工問題難不倒我, 但此門分科分很細, 要做水電還是得跟師傅學一學, 特別是水的部分我不熟. 


2023-12-26 補充 :

今天找到高雄市勞工局職訓的水電工培訓班招生公告 (已過期), 似乎是平日全天上課 : 


職訓中心招生網頁如下 :




訂購張盛舒現代命理必修課 (早鳥募資 27 折)

昨晚滑臉書時看到科技紫微網創辦人張盛舒的線上課程 "現代命理必修課" 早鳥募資廣告頗為心動, 我從學生時代開始就對山醫命卜相等五術很有興趣, 其中命卜相之術即現代所謂未來學, 先後看過斗數, 八字, 面相, 星象之類的書十餘本, 覺得這些學術非常龐雜, 忙修瞎練無人提點其實並無長進. 張盛舒原為科技人轉職相命師, 他從科學角度來論命極具革命性, 我常上他的網站查看黃曆以定吉凶, 但上課則是首次, 早鳥價格也非常優惠就報名聽看看唄.

# 張盛舒現代命理必修課  (2023-12-25 12:00 早鳥截止)

非會員填寫 email 與姓名後到藍新金流付款, 再按底下啟用帳號設定密碼即可 :






預定 2024-02-02 開課, 課程長度 10 小時含 35 個單元. 古云四十而不惑, 五十而知天命, 其實那是指聖人而言, 大多數的人到了六十歲還是既疑惑又不認命.  


2024-02-24 補充 :

二月初課程上線後一直沒時間上課, 因為訂課時有送一張價值 880 元的 2024 流年券必須在 3/3 前用掉, 所以今天登入網站去使用, 會員專區網址如下 :


另外還贈送了 660 元的課程抵用券, 到期日為 2026-02-26. 目前購課 3960 元, 折抵 660 元只要 3300 元 :



2023年12月24日 星期日

2023 年第 51 周記事

本周終於把 Hahow 企業版的 Python 50+ 第 3/4 級課程 (資料科學 & 機器學習) 課程上完, 但看過不表示都會, 資料科學還可以, 機器學習仍需再看一遍. 剩下一周要把 Django 收尾一下, 機器學習就明年一月繼續學習. 

鄉下老家的四隻貓中, 小黑與小花已兩周未回, 根據以往經驗, 他倆應該是不會回來了. 剩小灰與小白在家, 小灰是母貓, 很少出去, 小白是公貓, 白日都在芭樂樹下待, 晚上就不見蛋. 看樣子貓飼料不用買這麼多了. 

日子過得好快, 即將揮別 2023. 今天下午婷婷帶兩個兒子來跟我去爬山, 兩個小不點似乎不久前才在榮總產房等待他們到來, 匆匆已過了四年. 她說每天都被兩個小傢伙弄到聲嘶力竭, 我倒覺得這才是人生中最快樂的時光啊. 

參加 AMB82 mini 研習

今天白天一整天 (09:00~16:00) 參加小霸王尤博的 AMB82 線上研習, 所以我一大早就先去市場, 才能在 09:00 前趕回家. 直播網址為 : 


研習簡報如下 : 


AMB82 開發板可在小霸王的蝦皮賣場購買 :


這塊板子買來一段時間一直沒空測試, 希望 2024 過年前找時間玩玩看. AMB82 最大的亮點是內建 NPU (類神經處理器), 其次是內建音頻與視頻應解碼器, 在影像辨識上 (例如 YOLO) 效能遠比 ESP32-CAM 要強上許多. 訓練 YOLO 模型可使用 Colab, 完成後再上傳 AMB82, 作法參考 : 


摘要 :
  1. 照片傳 Line 不要超過 800x600, 最好是用 640x480, 且必須是 JPEG 格式
  2. AMB82 只支援 YOLO v4 與 v7
  3. Darknet 與 YOLO 的關係 : Darknet 是訓練 YOLO 模型的一種演算法, 也可以用 Tensorflow 或 PyTorch (例如 YOLO v5 與 v8).

2023年12月23日 星期六

三星末代插卡機 Note20 Ultra 值得買嗎?

我的 Samsung Note8 使用已超過 5 年 (2018-09-13 購買, $19950), 6/64 GB 的規格當時很夠用, 現在除了螢幕逾時設定兩光外, 其它功能還是頭好壯壯, 特別是照相效果每每令姊姊讚嘆拍得好, 三星頂級手機的相機真的是有口皆碑. 但 64 GB 的儲存容量現在已不夠用, 可用容量剩不到 3 GB, 其中應用程式吃掉 37GB (光是 Line 就占了 13 GB), 常常會出現請清理儲存的通知, 所以最近有想要換支新手機. 

搜尋 Note 最新機種, 赫然發現三星已不再推出 Note 系列, 最後一款是 2020 年 8 月推出的 Note20 Ultra, 可能是因為手機越做越大, 連 S 系列都有 S Pen 手寫筆了, 難怪 Note 系列要收掉. 那就買最新的 S23 Ultra 好了, 但一查價格嚇死人, 在 momo 買 12/512 GB 空機要噴掉 35 張小朋友 (256 GB 則約 32 張左右), 跟買一台 LG 筆電差不多, 嚇得我狂咬手手. 

不然就買價位較便宜的 Note20U 吧. 雖然已是 3 年前的舊機種, 但功能夠用就好了, 我主要是想把之前上課的錄影影片放在 SD 卡有空就複習, 不需要依賴筆電. 我在樂天賣場找到一家代理商寶樟科技, 他們有全新未拆的 Note20 Ultra, 台版 (N9860) 與韓版 (N986N) 都有 :


台版型號 N9860NBRI 後面的 BRI 表示出貨給代理商, 出廠年份為 2023 (搭載 Android 13, 不是 2020 上市時的 Android 10, 雖然 2022 年說要停產, 但其實還有持續生產), 12/512GB 價格是 $21510, 年底前有折扣, 優惠價 $21143, 領券再折 $434 實付 $21076 :



S23 Ultra 512GB 則是 31763 元, 差 1 萬元 :




這幾天在猶豫是要買上市已 3 年的 Note20 嗎? 還是要多花 1 萬元買最新的 S23? 買 Note20U 主要考量是它是三星最後一代可插卡的手機, 最高可插 1TB, Note8 最高 256GB). 第二個原因是我 的 5G SIM 卡都升了 5 年了, 到現在都還只能用 Note8 的 4G. 但它主要缺點是 3 年前的老機型, 軟體支援到明年, 且只能升到 Android 14, 所以論壇上有所謂 "買新不買舊".  

原本想要手刀下去買 Note20U 了, 但考量軟體支援後踩剎車, 繼續猶豫觀望中, 但較傾向等明年 S24 推出後 S23 的價格降幅再決定. 仔細想想有無插卡似乎不是很重要, 512GB ROM 其實很大, 錄影教學影片頂多也就 1GB, 直接複製到 ROM 就可以. 其實我的 Note8 應該再撐個 3 年都沒問題, 勤一點刪除無用的 Line 資料應該也能勉強擠出 3~4 GB 容量. 

參考 :



2023-12-25 補充 :

我依照下面這篇建議, 清理 Line 一堆垃圾群組的全部資料後, 儲存容量從 2.4GB 提升到 4GB, 有空來刪除不會用到的 App 應該還可以騰出 1GB :



2023-12-31 補充 :

今天上樂天查價, 領優惠券後價格已降至 20423 元 :




購買硬碟資料救援軟體 EaseUS v17 專業版

因 Inhon 舊筆電無法開機, 晚上嘗試從 500 GB 2.5 吋硬碟裡的映像檔還原系統時不慎把那顆外接硬碟給快速格式化掉, 等發現已太遲了. 上網查詢復原的方法, 找到 EaseUS 這個軟體 :

https://tw.easeus.com/ppc/drive-data-recovery-wizard.html




年費版就要 2000 多, 乾脆多花一倍錢買專業終身版, 含稅共 4620 元. 




訂購後會收到內含終身專業版序號的 email, 啟用後馬上展開資料救援行動, 執行軟體選擇欲救援的硬碟後按掃描即可. 

支援資訊
需要技術支援? 有關產品安裝、啟用以及其它技術支援問題,請透過 - 或者 support@easeus.com 與 EaseUS 連絡

需要訂單方面的支援? 使用 myAccount 輕鬆管理您的訂單、訂閱、發票和付款詳情。您還可以隨時管理您的自動續訂設定。註冊 / 登入 使用您的電子郵件地址

2023年12月20日 星期三

好站 : 如何開發 WordPress 外掛

今天在 Youtube 找到下面這個 WordpPress 外掛開發的教學 : 





我之前是自己寫一個小型的 PHP 架站程式來安裝 PHP 應用程式, 後來用了 WordPress 對其介面與功能非常喜歡, 就想說要如何將自己的 PHP 應用程式與 WordPress 整合在一起, 原來就是所謂的外掛. 這篇其實是作者 Mr Digital 一系列 WordPress 教學影片裡的一部, 參考 :  


另外還有一個不錯的教學值得參考 : 





市圖還書 1 本 : Raspberry Pi最佳入門與應用

本周市圖還書 1 本 (被預約) : 
最近都沒時間玩樹莓派, 應該明年初才會用到, 屆時再回借. 

2023年12月19日 星期二

筆電 C 碟毀損如何回復 Windows

最近把五年前退役的 INHON 筆電開機, 發現有時可開機, 有時出現藍屏顯示系統啟動失敗 "Default boot device missing or boot failed", 研判應該是 SSD 年老色衰, 裡面部分儲存單位已經無法保持電位導致系統資料毀損, 如果要修可能要買新的 SSD 來重灌系統 :




但筆電裡的 Windows 是隨機版, 買來時是 Win8, 後來升級 Win8.1 與 Win10, 如果拆機插上新的 SSD, 要怎麼回復系統? 難道要從之前的系統備份檔回復嗎 (好像有製作過映像檔存在隨身碟)? 上網查到如下微軟官網資訊 : 


原來直接下載安裝 Win10 (不要輸入序號), 完成後會偵測硬體自動啟用, 參考 : 



2023-12-23 補充 :

因為從一顆隨身硬碟載入影像檔時出現 C 碟無法讀取, 依照下面這篇回復時沒注意到這時 C 碟是那顆隨身硬碟, 等格式化完才發現已太遲 :

系統映射復原失敗,發生0x80070002錯誤 (映像還原失敗 status_wait_2)

只好噴了 4600 元 買了 EaseUS 這套軟體來救援 :


檔案目錄大部分有救回來, 也算值了. 

2023年12月17日 星期日

2023 年第 50 周記事

周六水某與菁菁去台北找姐姐, 我早上載她們去高鐵後順路去左新還書, 然後就直接回鄉下, 幾乎兩天都在家, 但帶的一堆書卻沒看多少. 

國十里港至新威延伸線本周動土, 預計 2029 全線通車, 看工程路線圖發現會從村里水仙王伯公前面農地跨越荖濃溪堤防, 我昨天下午爬山下來時特地去勘查地形, 從伯公廟後方越過堤防, 經堤下便道走到大龜山頭, 繞整個大龜山一圈, 走到太子廟步測廟口至外地人農舍之間僅 50 步之遙, 高架橋要穿越應該還夠. 未來通車後, 老家與國十距離約 300 公尺, 應該不會有噪音. 

本周看完 Hahow 企業版 "Python 的 50+ 練習:資料科學學習手冊" (2) 進階篇, 其實我需要的是 (3) 與 (4) 資料科學與機器學習, 但把這當作是 Python 複習也不錯, 下周向 (3) 進發, 估計年底應能完成.  

今天發現部落格到訪人數突破 800 萬 :




對我而言寫 blogger 只是避免健忘的生活與學習流水帳而已, 但若對別人有用的話我也很高興. 

博客來買書 2 本

今天參加益師傅 MQTT 社團的線上分享會, 由洪錦魁老師介紹最近的 AI (Copilot) 大作, 博客來配合今日購書 66 折優惠 (到 12/17 23:59 為止), 因 66 折 343 元須 40 元運費, 所以加買一本之前想買的書 : 





7-11 取貨付款 846 元. 

2023年12月16日 星期六

Python 學習筆記 : 用 requirements.txt 批次安裝套件

每次要在新系統上安裝常用的 Python 套件時要一個一個執行 pip install 指令蠻累的, 其實這種苦活可以用 requirements.txt 批次檔來自動完成, 只要把想安裝的套件名稱與版本編號一列一列寫在 requirements.txt 套件檔裡面, 再用 pip install 安裝此套件檔例如 :

pandas==2.03
requests==2.31.0
scikit-learn==1.3.0
... (略)...

存檔為 requirements.txt 後就可以用 pip install 指令批次安裝這些套件 :

pip install requirements.txt 

如果要在一台電腦複製另一台電腦目前已安裝的套件環境, 不需手刻 requirements.txt (因套件數量可能多到嚇人), 可以用 pip freeze 指令將這些套件名稱與版本頃印到 requirements.txt : 

pip freeze > requirements.txt   

例如 : 

C:\Users\user>pip freeze > requirements.txt   
C:\Users\user>more requirements.txt   
absl-py==0.15.0
adafruit-ampy==1.0.1
appdirs==1.4.4
astunparse==1.6.3
attrs==22.2.0
Automat==22.10.0
beautifulsoup4==4.11.2
bleach==1.5.0
bokeh==2.3.3
builtwith==1.3.3
cached-property==1.5.2
cachetools==4.2.4
certifi==2017.4.17
cffi==1.15.1
chardet==3.0.4
... (略) ...

然後將其複製到另一台電腦用 pip install 安裝即可. 

為了測試批次安裝功能, 我們先建立一個虛擬環境 venv :

d:\python>virtualenv venv    
created virtual environment CPython3.10.11.final.0-64 in 8709ms
  creator CPython3Windows(dest=D:\python\venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\tony1\AppData\Local\pypa\virtualenv)
    added seed packages: pip==23.2.1, setuptools==68.0.0, wheel==0.41.1
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

切換到 venv 目錄並執行 Scripts 下的 activate 指令啟動虛擬環境 : 

d:\python>cd venv  
(venv) d:\python\venv>dir  
 磁碟區 D 中的磁碟是 新增磁碟區
 磁碟區序號:  1258-16B8

 d:\python\venv 的目錄

2023/12/16  下午 10:13    <DIR>          .
2023/12/16  下午 10:13    <DIR>          ..
2023/12/16  下午 10:13                42 .gitignore
2023/12/16  下午 10:13    <DIR>          Lib
2023/12/16  下午 10:13               371 pyvenv.cfg
2023/12/16  下午 10:13    <DIR>          Scripts
               2 個檔案             413 位元組
               4 個目錄  997,214,068,736 位元組可用

d:\python\venv>Scripts\activate   

用 pip list 檢視已安裝套件 : 

(venv) d:\python\venv>pip list   
Package    Version
---------- -------
pip        23.2.1
setuptools 68.0.0
wheel      0.41.1

可見目前只有 3 個已安裝套件. 安裝一個 request 套件 :

(venv) d:\python\venv>pip install requests    
Collecting requests
  Obtaining dependency information for requests from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting charset-normalizer<4,>=2 (from requests)
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/a2/a0/4af29e22cb5942488cf45630cbdd7cefd908768e69bdd90280842e4e8529/charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata
  Downloading charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests)
  Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Downloading idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests)
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/96/94/c31f58c7a7f470d5665935262ebd7455c7e4c7782eb525658d3dbf4b9403/urllib3-2.1.0-py3-none-any.whl.metadata
  Downloading urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests)
  Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/64/62/428ef076be88fa93716b576e4a01f919d25968913e817077a386fcbe4f42/certifi-2023.11.17-py3-none-any.whl.metadata
  Downloading certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Downloading certifi-2023.11.17-py3-none-any.whl (162 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 1.6 MB/s eta 0:00:00
Downloading charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl (100 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.3/100.3 kB 6.0 MB/s eta 0:00:00
Downloading idna-3.6-py3-none-any.whl (61 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.6/61.6 kB ? eta 0:00:00
Downloading urllib3-2.1.0-py3-none-any.whl (104 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 104.6/104.6 kB 5.9 MB/s eta 0:00:00
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2023.11.17 charset-normalizer-3.3.2 idna-3.6 requests-2.31.0 urllib3-2.1.0

再用 pip list 檢視已安裝套件 : 

(venv) d:\python\venv>pip list   
Package            Version
------------------ ----------
certifi            2023.11.17
charset-normalizer 3.3.2
idna               3.6
pip                23.2.1
requests           2.31.0
setuptools         68.0.0
urllib3            2.1.0
wheel              0.41.1

可見已安裝了 requests 與其相依套件, 這樣就可以用 pip freeze 將目前環境中的已安裝套件名稱與版本頃印到 requirements.txt :

(venv) d:\python\venv>pip freeze > requirements.txt   

開啟此 requirements.txt 內容如下 : 

certifi==2023.11.17
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.1.0

接著我們建立另一個虛擬環境 venv2 來測試是否能利用批次安裝檔來複製執行環境 :

d:\python>virtualenv venv2   
created virtual environment CPython3.10.11.final.0-64 in 286ms
  creator CPython3Windows(dest=D:\python\venv2, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\tony1\AppData\Local\pypa\virtualenv)
    added seed packages: pip==23.2.1, setuptools==68.0.0, wheel==0.41.1
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

d:\python>cd venv2   

d:\python\venv2>dir  
 磁碟區 D 中的磁碟是 新增磁碟區
 磁碟區序號:  1258-16B8

 d:\python\venv2 的目錄

2023/12/16  下午 10:20    <DIR>          .
2023/12/16  下午 10:20    <DIR>          ..
2023/12/16  下午 10:20                42 .gitignore
2023/12/16  下午 10:20    <DIR>          Lib
2023/12/16  下午 10:20               371 pyvenv.cfg
2023/12/16  下午 10:20    <DIR>          Scripts
               2 個檔案             413 位元組
               4 個目錄  997,192,208,384 位元組可用

啟動 venv2 虛擬環境 : 

d:\python\venv2>Scripts\activate    

檢視已安裝套件 : 

(venv2) d:\python\venv2>pip list   
Package    Version
---------- -------
pip        23.2.1
setuptools 68.0.0
wheel      0.41.1

將 venv 底下的 requirements.txt 複製到 venv2 下, 然後將 requests 改為限制版本為至少 2.20.0; 但 urllib3 則不指定版本 (即安裝最新版), 但不指定版本的話要在 install 後面添加 -r 參數 (如果用 pip freeze 產生的檔案原封不動安裝就不需要 -r 參數) :

certifi==2023.11.17
charset-normalizer==3.3.2
idna==3.6
requests>=2.20.0    
urllib3  

最後在 venv2 虛擬環境中用 pip install 依此檔案內容批次安裝套件 : 

(venv2) d:\python\venv2>pip install -r requirements.txt    
Collecting certifi==2023.11.17 (from -r requirements.txt (line 1))
  Obtaining dependency information for certifi==2023.11.17 from https://files.pythonhosted.org/packages/64/62/428ef076be88fa93716b576e4a01f919d25968913e817077a386fcbe4f42/certifi-2023.11.17-py3-none-any.whl.metadata
  Using cached certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Collecting charset-normalizer==3.3.2 (from -r requirements.txt (line 2))
  Obtaining dependency information for charset-normalizer==3.3.2 from https://files.pythonhosted.org/packages/a2/a0/4af29e22cb5942488cf45630cbdd7cefd908768e69bdd90280842e4e8529/charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata
  Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata (34 kB)
Collecting idna==3.6 (from -r requirements.txt (line 3))
  Obtaining dependency information for idna==3.6 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting requests>=2.20.0 (from -r requirements.txt (line 4))
  Obtaining dependency information for requests>=2.20.0 from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting urllib3 (from -r requirements.txt (line 5))
  Obtaining dependency information for urllib3 from https://files.pythonhosted.org/packages/96/94/c31f58c7a7f470d5665935262ebd7455c7e4c7782eb525658d3dbf4b9403/urllib3-2.1.0-py3-none-any.whl.metadata
  Using cached urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Using cached certifi-2023.11.17-py3-none-any.whl (162 kB)
Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl (100 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached urllib3-2.1.0-py3-none-any.whl (104 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2023.11.17 charset-normalizer-3.3.2 idna-3.6 requests-2.31.0 urllib3-2.1.0

可見已順利完成安裝, 用 pip list 檢視已安裝套件 : 

(venv2) d:\python\venv2>pip list   
Package            Version
------------------ ----------
certifi            2023.11.17
charset-normalizer 3.3.2
idna               3.6
pip                23.2.1
requests           2.31.0  
setuptools         68.0.0
urllib3            2.1.0   
wheel              0.41.1

可見 requests 限制版本至少要 2.20.0, 實際安裝最新的 2.31.0; 而 urllib3 未指定版本也是安裝最新的 2.1.0 版. 

測試完可用 deactivate 指令關閉虛擬環境, 然後用 rmdir 將其目錄刪除即可 :  

(venv2) d:\python\venv2>deactivate   
d:\python\venv2>cd ..  
d:\python>rmdir venv2 /s   
venv2,您確定要執行嗎 (Y/N)? y

注意, 因 venv2 底下有檔案與子目錄, 用 /s 參數可強制刪除. 

參考 :

練英文聽力的好工具 : NPR (全國公共廣播電台)

我已好一段時間沒有在快走時聽英文了, 主要原因是想放空或胡思亂想, 但最近覺得快走 40 分鐘讓腦袋空轉似乎有點浪費, 想說是不是有甚麼廣播是不停放送英文新聞的, 搜尋網路發現有人推薦美國全國公共廣播電台 NPR :


NPR 是美國一家非營利的獨立廣播電台, 它有 24 小時的美國國內外新聞廣播, 按它首頁右上角的播放鍵就可以收聽 Live 新聞 :




NPR 也有提供 App, 在 Play/App Store 可下載安裝, 用 Google 帳號註冊登入後即可隨時收聽 Live 新聞廣播 : 




登入 App 後按最上面的播放鍵即可聆聽不間斷的新聞廣播了 : 



好書 : Rebooting AI: Building Artificial Intelligence We Can Trust

前陣子參加高雄 Python 社群線上講座時, 講者介紹了這本書 : 



Source : 博客來


可能是到天網的影響, 人們對 AI 的快速發展感到恐懼, 此書正是探討如何讓 AI 的未來是方便而非威脅. 好消息是, 母校高科大圖書館有這本書, 有空再借來看看. 

2023年12月15日 星期五

露天買書 1 本 : 處理大數據的美工刀

前陣子在鄉下圖書館借的這本書不小心弄髒了, 想說買一本賠給圖書館, 但原書是第一版, 我上露天只找到第二版 (最新是第三版), ISBN 不同不知道行不行. 





全家取貨免運 330 元. 

參加 Google Cloud 開發者培訓系列課程 (一) Text Generation for Applications using Gen AI Studio

前陣子收到公司訓練單位寄來的 Google Cloud 開發者培訓課程資訊, 收到回函如下 :

您已報名參加 Google Cloud 開發者培訓系列:生成式 AI 專題 線上課程。為確保課程當天的學習進度及實驗室練習相關權限,請務必於活動前依照下方指示前往註冊 Qwiklabs 學員帳號,以便於課程期間執行實驗練習。


課程名稱:Text Generation for Applications using Gen AI Studio

課程時間: 2023 年 12 月 15 日  9:00 AM – 4:00 PM GMT+8

上課地點:線上遠距教室 (課程當天,請點選本信件中的觀看連結進而參與課程)

授課語言:中文


實驗練習權限取得方式:請以 “報名課程之公司電子郵件帳號 ” 至 https://googlecloud.qwiklab.com 註冊學員帳號;如您為舊生,請以既有帳戶 (公司 email)登入 


1. 點選右上角 Join > 填寫基本資料送出申請> 回到網站成功登入> 課程將列於首頁

2. 建議用Chrome瀏覽器;右上角地球符號可改英文介面


注意, Generative AI Studio 現在已改A名為 Vertex AI Studio.


我報名時沒有使用公司郵件, 而是使用 Hinet 郵件, 還是可以在 qwilab 建立帳號 Lab 帳號 :

Overview

In this course, you will explore the use of text generation models using Gen AI Studio on Vertex AI and learn how to incorporate those models into your application using the PaLM API and client libraries. You will learn how to design and tune prompts to ensure the best outputs for your applications and discuss how to fine-tune foundational models to improve model output quality.

Date

Friday, December 15, 2023 6:00AM CST —
Friday, December 15, 2023 11:00PM CST

Location

Virtual

Instructor

HanSheng CHIU

级别

入门级

此課程的教學大綱如下 : 


Vertex 的 Model Garden 提供了許多模型可供選擇 :


Lab 需要用 Chrome 無痕式視窗開啟, 此種視窗 Chrome 不會記錄瀏覽歷史與 Cookies 等 :




Google AI 服務 :

https://cloud.google.com/natural-language?hl=zh_tw (免費試用需登錄信用卡)

以下的 Lab 實驗都是在真實的 GCP 雲端環境中以學生帳戶執行執行 (必須在 Chrome 無痕視窗中操作, 以免因為與自己的 GCP 帳戶衝突導致額外的費用支出), 只到今晚 23:00 有效 :

Lab 1 :

此實驗目標是使用三種方式來使用 PaLM API : 
(1). 在命令列用 cURL 發出 REST 請求 
(2). 使用 Jupyter Notebook
(3). 使用 Python 程式




Lab 2 :

Fine-tunning 資料 :

課程問卷:


課後記 :

雖然我 Lab 沒全部完成, 但今天收穫頗豐, 我勇敢拋出心中愚笨的問題, 老師有問必答破解了我許多迷思, 感謝 :
  1. 微調的 adaptor 模型是與基礎模型 PaLM2 綁在一起的 (參數依賴於 PaLM2), 所以它無法被單獨下載到本機與其他 foundation 搭配執行 (我之前是想說能不能用 Vertex 微調一個 adaptor, 因為它很小, 是否可下載與本機的 LLaMA2 一起跑, 答案是不行).
  2. PaLM2 與 Codey 都可以生成程式碼, 但 Codey 的表現會較好.
  3. PaLM2 與 GPT4 在中文表現方面的比較, 老師表示也許 GPT4 較優, 但需要更多測試研究才知道.   
上完課突然好想搞懂 GCP, 因為 Lab 實驗時發現自己對 GCP 平台操作不熟. 


2023-12-20 補充 : 

下一次上課是 2024-02-07 10:00~12:00 :