發表文章

目前顯示的是 10月, 2025的文章

[Python] 關於 numpy 以及1~5維度的資料

  如題,由於在機器學習中,必定會遇到資料,例如: x_train = array([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]], dtype=float32) 那個透過 numpy,可以得到 x_train.shape = (50000, 784) ,究竟 numpy, x_train 是什麼呢? 如何知道資料類型? 有哪些屬性? 有哪些方法? x_train 數據和其形狀 (50000, 784),這說明它是一個 NumPy 數組,通常用於深度學習和機器學習中的數據集表示。以下是對 x_train 的分析: ● x_train 是什麼? 類型:x_train 是一個 NumPy 數組(numpy.ndarray)。 數據形狀:它的形狀為 (50000, 784),這意味著這個數組有 50000 行和 784 列。在機器學習中,每一行(row)通常代表一個樣本,每一列(column)代表一個特徵。 ● 其中的數據代表什麼? 根據形狀,這個數組可能用於表示圖像數據集,其中每行(row)代表一個扁平化的圖像。例如,在手寫數字識別問題(如 MNIST 數據集)中,每個 28x28 像素的圖像被扁平化為一個長度為 784 的一維數組。 數據類型為 float32,這是深度學習中常用的數據類型,用於減少內存消耗並提高計算效率。 ● NumPy 數組的主要屬性: ndarray.shape:數組的各維度大小。 ndarray.size:數組中元素的總數。 ndarray.dtype:數組元素的數據類型。 ndarray.ndim:數組的維數。 ● NumPy 數組的常用方法: reshape:改變數組的形狀。 flatten 或 ravel:將多維數組降為一維。 transpose:轉置數組。 sum、mean、std 等:計算統計量。 max、min:尋找最大值和最小值。 import numpy as np # 假設 x_trai...

[IIS] 32位元應用程式,無故異常錯誤合輯

圖片
  由於維護IIS時,偶而會遇到無故異常事件,原因都是32位元應用程式導致的,以上記錄一下。 1. Crytal Report 的 log4net 錯誤 這個錯誤發生於32位元應用程式,將 32位元應用程式 改為 False。 2. [ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式 這個錯誤發生於32位元應用程式,將 32位元應用程式 改為 True。 ●總結: 如果有遇到本來正常,但是突然錯誤的狀況,那可能就是這個問題,改為 True, False 都試試看。

[Windows] 7-Zip解壓縮簡中檔名為亂碼

圖片
  解決7zip解壓縮亂碼問題。 下載7zip(這步就省略了。 https://www.7-zip.org/download.html ) 設定7zip環境變數(詳見下圖): C:\Program Files\7-Zip cmd cd到指定的目錄,輸入以下指令: 7z x 您的檔案.zip -mcp=936 參數: x => 代表解壓縮 您的檔案.zip => 檔名 -mcp=936 => 指定編碼為簡中 --簡中 936 --日文 932 --編碼可以參考:  https://www.wikiwand.com/en/Code_page#/DOS_code_pages 參考: https://tech.gjlmotea.com/2021/07/windows7-zip.html https://blog.csdn.net/u010348546/article/details/124087985

[AI] 歸一化 Normalization

圖片
  AI、深度學習領域很常見到 歸一化 ,之看都沒有很了解,故整理後簡單說明。 說明 : 歸一化是將數據按比例縮放到一個共同的範圍或分布內,以提高數據處理或模型學習的效率和效果。 目的 :   1.  提高算法效率 :在許多機器學習和數據分析算法中,如果數據特徵的尺度差異很大,會導致學習過程緩慢甚至不收斂。歸一化通過將所有特徵縮放到相同的尺度範圍內,有助於加速學習過程。   2.  提高模型性能 :對於一些基於距離的算法(如K近鄰、K-均值聚類等),特徵的尺度差異會直接影響距離的計算,進而影響模型的性能。通過歸一化,可以確保不同尺度的特徵對模型的貢獻是均衡的。   3.  避免數值問題 :在處理包含很大或很小數值的數據時,可能會遇到數值溢出或下溢的問題。歸一化有助於將數據縮放到一個合適的範圍內,減少這類問題。   4.  滿足模型假設 :某些統計模型和算法需要數據符合特定分布(如正態分布),或者需要特徵之間具有相似的尺度。歸一化可以是達到這些前提假設的一種方法。 常見的歸一化方法 : 1. 最小-最大歸一化 (Min-Max Normalization) 2. Z得分歸一化 (Z-Score Normalization) 3. 小數定標歸一化 (Decimal Scaling Normalization) 結論: 歸一化並沒有指定的公式,但有常見的公式。主要是看當下的場景去定義適合的歸一化。

[JS] 浮點數精度問題

  使用JS計算時,通常都會遇到浮點數的精度問題,例如以下: // 使用js浮點數相加: // 0.1 + 0.2 = 0.30000000000000004 // 0.33 * 10 = 3.3000000000000003 解決的方法: // 解法: parseFloat (( 0.1 + 0.2 ).toPrecision( 12 )) -- result: 0.3 parseFloat (( 0.33 * 10 ).toPrecision( 12 )) -- result: 3.3 // 可以封裝成方法 function strip ( num, precision = 12 ) { return + parseFloat (num.toPrecision(precision)); } 那為什麼要 toPrecision(12) 呢? 目的是要取精度,如果把精度提高,這樣又會現出原形了,所以12是個常見的經驗值,可以依照現況調整。 // 精度提高結果 parseFloat (( 0.1 + 0.2 ).toPrecision( 18 )) -- result: 0.30000000000000004 parseFloat (( 0.33 * 10 ).toPrecision( 18 )) -- result: 3.3000000000000003 實際背後的原因 就是 JavaScript 中所有數位包括整數和小數都只有一種類型 — Number。 它的實現遵循 IEEE 754 標準,使用 64 位固定長度來表示,也就是標準的 double 雙精度浮點數(相關的還有 float 32 位單精度)。: // 0.1 和 0.2 都轉化成二進位後再進行運算 0.0001100110011001100110011001100110011001100110011001101 + 0.001100110011001100110011001100110011001100110011001101 = 0.0100110011001100110011001100110011001100110011001100111 // 轉成十進位正好是0.300000000000000004 詳細說明可以詳閱:  ht...

[AI] 深度學習模型 vs 傳統機器學習模型

  深度學習模型和傳統機器學習模型主要的區別在於它們的架構、處理數據的方式、學習能力和應用場景。 以下是兩者之間的幾個主要區別以及各自的五大經典模型: 1. 模型架構: 深度學習:通常由多層(深層)的人工神經網絡構成,這些層次可以自動學習數據的高階特徵。 傳統機器學習:往往依賴於手工特徵提取和簡單的算法,如線性模型,不需要過於複雜的架構。 2. 數據處理能力: 深度學習:擅長處理大規模數據集,特別是高維度和非結構化數據(如圖像、聲音和文本)。 傳統機器學習:更適合處理小到中等規模的數據集,且通常需要結構化數據。 3. 特徵學習: 深度學習:可以自動從數據中學習特徵,減少了對專業知識的依賴。 傳統機器學習:大多數情況下需要手動設計特徵,這要求對數據的專業知識。 4. 計算要求: 深度學習:計算密集型,需要強大的硬件支持(如GPU)。 傳統機器學習:通常計算需求較低,可以在沒有專門硬件的情況下運行。 5. 應用場景: 深度學習:非常適合複雜問題和大規模數據分析,如自動駕駛、語音識別和自然語言處理。 傳統機器學習:適用於預測分析、分類問題和回歸分析,如信用評分、客戶分類。 五大經典深度學習模型 卷積神經網絡(CNNs):廣泛用於圖像和視頻處理。 遞歸神經網絡(RNNs):適用於處理序列數據,如時間序列分析和語言模型。 長短期記憶網絡(LSTMs):一種特殊類型的RNN,專門處理長序列數據。 生成對抗網絡(GANs):用於生成接近真實的圖像、聲音和視頻數據。 Transformer模型:在自然語言處理領域,特別是在翻譯和文本生成中表現出色。 五大經典傳統機器學習模型 線性回歸(Linear Regression):用於預測和趨勢分析。 支持向量機(SVMs):廣泛應用於分類問題。 決策樹(Decision Trees):用於分類和回歸任務,易於理解和實現。 隨機森林(Random Forests):一種基於決策樹的強大集成學習方法。 K-最近鄰(K-NN):一種簡單但強大的分類和回歸算法。 這些模型各有其應用的領域和優勢,選擇合適的模型通常基於特定的應用需求和數據類型。

[SQL] 查找&修改 Oracle tnsnames.ora

圖片
 如題,公司內當外部DB有改連線資訊時,對接的Server也需要調整,簡單整理如下。 1. win + R 輸入 regedit 開啟 登陸編輯程式,找到 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 2. 在該路徑後面應該可以找到 NETWORK\ADMIN\tnsnames.ora 3 . 依照外部資訊修改 tnsnames.ora 即可。