2022年12月21日 星期三

Colab中修改安裝模組程式碼

Python的模組安裝後,常會遇到模組更新需修改模組中檔案的程式碼情況,若是在本機可以開啟該檔案修改程式即可,但在Colab中要如何修改呢?

下面以google-images-download現在(2022/12/21)遇到的情況為例說明:需將<google-images-download.py>中的「if info is None: info = data[11]」改為「if info is None: info = data[23]」。

2022年10月7日 星期五

LINEBOT-Flask最強應用修正

 CH10:發票對獎小幫手

財政部發票號碼網頁有修正,而且最近幾期沒有開出增加六獎,造成程式執行錯誤。


修正程式下載: linebotInvoice.py

2022年9月7日 星期三

Flask專案發布到Deta

Deta是一個可以代替Heroku執行Python應用程式的伺服器空間,它完全免費(Deta沒有付費方案),沒有應用程式數量限制。Deta不支援Sqlite與PostgreSQL資料庫(Deta使用自己開發的NoSQL資料庫),因此建議不使用資料庫的應用程式才發布到Deta。

2022年9月2日 星期五

在ElephantSQL建立PostgreSQL資料庫

Heroku免費帳號將在2022年12月31日失效,連帶其提供的PostgreSQL資料庫也將無法使用。Heroku服務可用Vercel取代(參考「Flask專案發布到Vercel」),但Vercel不支援資料庫,所以需使用ElephantSQL來建立PostgreSQL資料庫。

建立ElephantSQL帳號

ElephantSQL建立新帳號可由Github帳號登入建立,如果沒有Github帳號請先申請Github帳號。

開啟「https://www.elephantsql.com/」網頁,按右上角「Log in」鈕。

2022年9月1日 星期四

Flask專案發布到Vercel

剛收到Heroku的Email,通知免費帳號到2022年12月31日全面失效,因此使用Vercel來代替Heroku。

安裝Vercel Client

如果尚未安裝Node.js,開啟「https://nodejs.org/en/」網頁,下載Node.js安裝檔,再雙擊安裝檔安裝Node.js。

2022年8月27日 星期六

PYTHON資料科學自學聖經修正

CH11:蒐集資料:貓狗資料集

將原有程式:

!wget --no-check-certificate "https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_3367a.zip"

!unzip "kagglecatsanddogs_3367a.zip"

改為:

!wget --no-check-certificate "https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip"

!unzip "kagglecatsanddogs_5340.zip"

2022年8月25日 星期四

PYTHON實戰聖經書籍修正

CH03:GoogleImageDownload

將原有程式:

!pip install google-images-download-joe

!sed -i 's/Mozilla\/5.0 (Windows NT 6.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2228.0 Safari\/537.36/Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/88.0.4324.104 Safari\/537.36/g' /usr/local/lib/python3.7/dist-packages/google_images_download/google_images_download.py

from google_images_download import google_images_download

改為:

!pip install git+https://github.com/Joeclinton1/google-images-download.git

!sed -i 's/data\[11\]/data\[25\]/g' /usr/local/lib/python3.9/dist-packages/google_images_download/google_images_download.py

from google_images_download import google_images_download

2022年8月23日 星期二

在HuggingFace建立Gradio Web App

Gradio建立Web App時,其分享給其他使用者的公開網址只有72小時有效。如果要讓Gradio建立的Web App一直可以分享,可在HuggingFace網站建立空間存放Web App 即可完成。

2022年6月26日 星期日

ngrok授權設定

目前ngrok必須註冊登入建立授權檔才能使用,而且ngrok會被chrome瀏覽器判別為詐騙網頁。

下載最新版ngrok程式

開啟「https://dashboard.ngrok.com/get-started/setup」網頁,可用Github、Google或註冊新帳號登入。

在Colab使用攝影機

OpenCV的VideoCapture(0)是從執行程式的電腦開啟攝像機,當你在Colab伺服器上執行程式時,Colab伺服器並沒有攝像機,因此VideoCapture(0)無法在Colab中運行,無法從本機攝影機獲取圖像。因為Colab是在瀏覽器中運行,可以利用JavaScript來開啟本機攝影機。

擷取攝影機圖像

Colab有提供擷取本機攝影機圖像的示範程式碼:在`Colab專案頁面點選「程式碼片斷」鈕,再點選「Camera Capture」項目右方的箭頭,就會將擷取本機攝影機圖像的程式碼加入新的程式碼儲存格。

Linebot上傳Heroku除錯方式

 Linebot上傳Heroku後測試若發生錯誤,因其錯誤訊息不明確,除錯非常困難。本篇整理筆者遇到的常用錯誤及除錯方式,提供參考。

(以「Python與Line Bot機器人全面實戰特訓班 – Flask最強應用」一書第13章為例)

修改使用者資料

確定<linebotHotel.py>中第10、11、13、16列程式已修改為使用者的CHANNEL_ACCESS_TOKEN、CHANNEL_SECRET、Heroku的PostgreSQL資訊、LIFF ID。

Linebot本機除錯方式

 Linebot測試時若發生錯誤,因不知其錯誤訊息在何處,除錯非常困難。本篇整理筆者遇到的常用錯誤及除錯方式,提供參考。

(以「Python與Line Bot機器人全面實戰特訓班 – Flask最強應用」一書第12章「線上旅館訂房管家」為例)

修改使用者資料

確定<linebotHotel.py>中第12、13、15、18列程式已修改為使用者的CHANNEL_ACCESS_TOKEN、CHANNEL_SECRET、本機PostgreSQL資訊、LIFF ID。

 取得MNIST手寫數字圖檔

MINST手寫數字是機器學習入門最常使用的資料集之一,但通常是使用Keras直接讀取使用。若是想要將其中圖片取出自行運用,該如何操作呢?

建立 Tensorflow 1.x 環境

由於Tensorflow 1.x可以直接讀取MINST資料集,而2.x版已移除此功能,所以我們要在Tensorflow 1.x環境中執行。這種情況可在虛擬環境中操作,但發現在COLAB中更方便,因此本篇在COLAB中操作。

Django使用postgres資料庫-Heroku

在Heroku中的Django專案不能使用sqlite做為資料庫,使用postgres資料庫是不錯的選擇。

本篇說明如何在Heroku中的Django專案使用postgres資料庫。

Heroku啟動postgres資料庫

首先檢查Heroku是否啟動postgres資料庫:在命令提示字元視窗執行「heroku login」登入Heroku,檢查Heroku是否啟動postgres資料庫的語法為:

heroku addons -a Heroku中app名稱

Django使用postgres資料庫-本機

 Django預設使用的資料庫是sqlite,因sqlite是單檔資料庫,若將Django專案上傳到Heroku,sqlite資料庫在一段時間(通常是幾個小時)就會被還原。而Heroku預設的資料庫為postgres,因此如果是準備上傳到Heroku的Django專案,最好是使用postgres做為資料庫。

本篇說明如何在本機的Django專案使用postgres資料庫。

Line bot LIFF v2 建立方式_20200504

 Line bot LIFF v2 將建立 LIFF 功能移到 Line Login Channel,雖然原先建立的 LIFF 仍可執行,但未定何時會失效,官網建議將所有 LIFF 移到 Line Login Channel。新建的 Messaging Channel 則必須在 Line Login Channel 建立 LIFF。

「Python 與 Line bot 機器人」書中第七章需做修正。

Django專案發布到CPanel伺服器

 最近購買了 CPanel 伺服器空間,想將以前部署在 Heroku 的 Django App 安裝到 CPanel,此處以「發票對獎系統 LINE Bot」為例。

建立Python應用程式

登入CPanel,點選「Setup Python App」。

由經緯度查找鄉鎮市區名稱

 許多應用程式可以顯示使用者所在地的各種資訊,例如筆者住在台北市內湖區,開啟應用程式就顯示內湖區的天氣狀況,讓人倍感親切。其原理是以行動裝置取得使用者所在的經緯度,再由經緯度取得鄉鎮市區行政區域名稱,就可做各種應用了!

由國土測繪圖資取得鄉鎮市區邊界資料

要判斷經緯度屬於哪一個鄉鎮市區,必須先知道鄉鎮市區的邊界資料才能判斷,國土測繪圖資公開資料有提供鄉鎮市區邊界資料。

使用Deepfakes為影片變臉

Deepfakes是一種利用機器學習中的深度學習實現深度影片換臉的技術。而DeepFaceLab是眾多軟體中,安裝最簡單,使用最方便,更新最快的一款軟體。

安裝GPU模組

DeepFaceLab需要使用GPU,因此需安裝CUDA及cuDNN。

安裝CUDA:開啟https://developer.nvidia.com/cuda-toolkit-archive,點選CUDA Toolkit 10.1 update2。

GCP筆記

GCP (Google Cloud Platform)可讓使用者建立多種虛擬機器做為學習機器學習的主機,主機效能較Colab好,雖然要付費,但Google提供300美元的免費額度,期限一年,足夠做為練習用。

為避免時間久了會忘記,故做簡易筆記記錄。

將 WORD文件發布為 Google Blogger

將部落格文章先在本機以 WORD 編輯完成,再傳送到 Google Blogger 是很方便的做法,WORD 中的圖形檔案會一併上傳,不必再自行處理。

上傳 WORD 文件到雲端硬碟

此處以「Colaboratory使用入門.doc」為例。首先開啟雲端硬碟,點選右上角輪狀設定鈕,再點按「設定」。