發表文章

目前顯示的是 2025的文章

Gradio筆記2_ChatInterface畫面_聊天機器人應用介面

圖片
  鸚鵡聊天機器人程式碼 import gradio as gr def echo (msg,history): return msg web_demo = gr . ChatInterface( fn = echo, examples = [ "Hi" , "你好" , "安安" , "幫我將以下內容翻譯為英文or日文" ], title = "鸚鵡聊天機器人" , submit_btn = "發送" ) if __name__ == '__main__' : web_demo . launch() 這邊可以更改預設submit字眼 模仿chatgpt 逐字元延遲0.1秒依序打印輸入內文。 逐字元延遲0.1秒依序打印輸入內文程式碼 import gradio as gr import time def slow_echo (msg,history): for i in range ( len (msg)): time . sleep( 0.1 ) yield "你打得字:" + msg[: i + 1 ] #模擬類似chatgpt那樣子立刻逐字元回饋,不是一口氣返回訊息。 web_demo = gr . ChatInterface(fn = slow_echo) . queue() if __name__ == '__main__' : web_demo . launch()

Gradio筆記1_不用碰到js,css也能藉由短短幾行python code產生網站介面

圖片
  pip install gradio 此時會自動安裝一堆的相依套件 預覽透過7860這個port開啟 http://127.0.0.1:7860 上述執行都是用直接python 去RUN的方式,當我們調整程式要Reload時候都要中斷再重新RUN十分麻煩。可以透過下gradio指令的方式來快速讓他讀取到存入的變更,並自動刷新網頁且不用中斷。 gradio my_gradio.py --demo-name=web_demo gradio {你所指定的.py檔案名稱} --demo-name={你這邊要launch網站的變數別名} 當然假設今天想將demo網頁分享給其他人,也完全不需要花時間搞捨麼租用主機 跟架設虛擬主機等等步驟,只需要調整.launch() 括號後面參數設置為share=True即可分享跨網域給全世界,只要這隻應用仍然開著RUN的話。 測試程式碼 import gradio as gr def greet (Name,is_morning,temperature): msg = "Good morning" if is_morning else "Good afternoon" greeting = f "{msg} {Name}. It is {temperature} 攝氏溫度." celsius = (temperature - 32 ) * 5 / 9 return greeting, round (celsius, 2 ) #必要三個參數:輸入/輸出 web_demo = gr.Interface(fn=greet, # 指定function不指定就給None inputs=[ "text" , "checkbox" ,gr.Slider( 0 , 60 )], outputs=[ "text" , "number" ],clear_btn= None ,submit_btn= "送出" , ...

MySQL_ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)_重置root密碼

圖片
  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) (using password: NO) 表示嘗試連接時沒有提供密碼。 (using password: YES) 表示嘗試連接時提供了密碼。 我這邊起初密碼是rootroot 如果出現的是這種錯誤,絕大部分偏向是更改過密碼但忘記了用上一次記憶中的密碼。 ERROR 1045 (28000): Access denied for user 'root'@'localhost'  (using password: YES) 表示我們嘗試以root用戶連接MySQL資料庫時提供的密碼不正確。 重置root密碼 Step1.開啟Windows「服務」管理工具(可以在開始菜單中搜索「services.msc」),找到MySQL服務,並停止它。 指令方式: taskkill /F /IM mysqld.exe 以下是介面方式: 當你關閉MySQL服務後,3306服務此時就沒有相關服務在使用了。 Step2.在C槽新增一個mysql-init.txt 內容如下 ALTER USER 'root'@'localhost' IDENTIFIED BY '你想更換的新密碼'; Step3.用cmd並以系統管理員來啟動 下以下指令 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\\mysql-init.txt" --console Step4.另外去開Command Line Client確認是否可用新密碼登入 確認密碼已更改成新的了 Step5.將剛開起的cmd都關閉後,再重啟MySQL服務即可。 此時你用新的密碼來cmd登也可以成功。 Ref: H...

探索式資料分析EDA_皮爾森積差相關係數(波士頓房價)_熱度圖&散點圖

圖片
  這邊要先確保sklearn使用版本要是1.1.3版本(之後版本都移除波士頓房價的toy dataset了) 然後numpy不能到2.x版本 要是1.26.4 https://stackoverflow.com/questions/78634235/numpy-dtype-size-changed-may-indicate-binary-incompatibility-expected-96-from Attribute Information (in order):         - CRIM     per capita crime rate by town         - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.         - INDUS    proportion of non-retail business acres per town         - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)         - NOX      nitric oxides concentration (parts per 10 million)         - RM       average number of rooms per dwelling         - AGE      proportion of owner-occupied units built prior to 1940     ...

損失函數(Loss function)、學習速率(Learning Rate)

圖片
  https://theprofessionalspoint.blogspot.com/2019/02/loss-functions-in-machine-learning-mae.html 損失函數(Loss function) 損失函數就代表「實際值跟預測值的殘差」 基本上分為兩個淺面向(分類、回歸),基本上都希望最小化損失函數。 在回歸問題中,我們通常希望模型很棒,預測出來東西可跟實際值趨近一樣。然而現實是不可能預測的值跟實際值會完全相同。預測出來的東西基本上跟實際值都一定有落差,在統計中針對此落差專業術語就稱作 「殘差」(residual) ,損失函數愈低愈好。 常見Loss function像是RMSE、MSE 和 MAE 等, 都是用於優化深度學習模型的最常用誤差函數。 假設一個模型採用訓練數據並預測下表中的數值。 target 是預測的正確答案,epoch 是訓練次數。 於以下表格中當第二次epoch時候,預測第 3 個值是一個異常值。 因為它預測到與目標的第 3 個值 7 有顯著偏差。 MSE、RMSE 和 MAE 的計算方法如下: 學習速率(Learning Rate) 在優化過程中,Learing Rate應該要逐步減小,越接近"山谷"時候,要邁開的"步伐:應該愈小。 通常用人工調節手法,可以先對Learning Rate設初始值,比方0.25,之後當跌代到一定程度比方第25個epoch時,再將Learning rate除以10,變成設為0.025。 或者自動調節,簡單有效的常見作法是,當驗證集準確率不再提高時,可將Learning rate減半或除以10,再繼續跌代。 不見得愈低(高)就愈好,剛剛好就會好,過猶不及。 會根據模型、訓練過程而有不同調節情況。 學習率設定0.5情況(步伐緩慢,但最終有成功到達目的地) 可以想像夜晚無燈光開山路的感覺,會十分緩慢步伐小十分謹慎。 學習率設定0.9情況(不夠謹慎,有喝醉酒亂走偏移情況,但最終也有成功到達目的地山頂。) 當學習率設定1情況(開始失敗,過猶不及,愈急愈容易失敗。) Ref: https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E...

第一代類神經網路(感知機時代)延伸到後期神經網路架構

圖片
  https://zhengyu.tech/archives/shen-du-xue-xi-zhong-de-ji-huo-han-shu 第一代類神經網路(感知機時代) 人工神經網路(ANN,Artificial Neuron Net) 由許多人工神經元(Artificial Neuron)所組成。 用於模擬人腦神經的架構與原理,藉此解決一些決策判定上問題。 簡單的神經元如何運作的?(只有一層會有權重W跟偏差值bias) 假設有兩個神經元X 跟 Y將信號傳遞到另一個神經元Z。 X跟Y是傳遞信號的傳入神經元,Z是接收信號的輸出神經元(接收並激活)。 輸入神經元透過互連鏈路(A跟B)連接到輸出神經元。 臨界值區分輸出0或1 https://towardsdatascience.com/the-basics-of-neural-networks-neural-network-series-part-1-4419e343b2b-2/ 權重(Weight):  用來決定輸入特徵對神經元輸出的影響程度。 偏差值(Bias): 對輸出的一個常數偏移,偏差值就像調整這個門檻的高度,讓神經元更容易或更難被激活。 激活函數(Activation function): 好比如一定的門檻,只有當輸入超過這個門檻時,神經元才會被激活。 隨著發展慢慢感知機時代的處裡無法滿足後續不限純數值或線性問題計算。權重的自我學習也成為重要性質之一,激活函數也愈來愈重要, 激活函數主要用於解決非線性的應用問題(二分類、多分類、迴歸問題【連續性數據】) 。在類神經網路中使用到的激勵函數主要是利用非線性方程式去解決非線性問題。 神經網路的一個重要性質是他可以自動地從數據中學習到合適的權重參數。 激活函數會將輸入信號的總和轉換為輸出信號。具體操作是將輸入(X)和它們相對的權重(W)之乘積之加總,並將激活函數用於其獲取該層的輸出並將其作為輸入饋送到下一層。 若不使用激勵函數,類神經網路會以線性的方式組合運算,因隱藏層以及輸出層皆是將上層結果輸入,並以線性組合計算作為這一層輸出。使得輸出跟輸入只會存在線性關係。 然而,實際環境絕大部分都屬於非線性問題。 https://lassehansen.me/post/neural-networks-step-by-step/ https://zhuanl...