1. 建立模型與並使用模型來預測資料
      發表時間: 2023-01-19 下午 2:41下午 2:41
      從本機圖片建立模型的簡單範例 以下為從classify資料夾內載入圖片並建構分類模組的範例。圖片資料夾的結構如下: 其中daisy、dandelion、roses、sunflowers、tulips為標籤名稱,在各個資料夾內為圖片 然後使用 image_dataset_from_directory 函數載入圖片,需要傳遞以下參數: directory:包含圖片的目錄。 labels:標籤的名稱。預
    2. TensorFlow Extended (TFX) 介紹
      發表時間: 2023-01-13 下午 5:25下午 5:25
      功能介紹 TensorFlow Extended (TFX) 是Google 開發的一個開源框架,用於在TensorFlow 中構建機器學習管道。TFX 的目標是簡化機器學習管道的構建過程,使其能夠更容易地部署和維護。 其中TFX 管道是TFX 中的一個重要部分,它是一種用於組織和管理機器學習工作流的方式。TFX 管道由多個組件組成,每個組件負責執行特定的任務,如數據預處理、訓練、評估等。TFX
    3. 用兩張圖片來偵測圖像是否在靜止狀態
      發表時間: 2023-01-13 下午 5:06下午 5:06
      實踐概念 使用 TensorFlow 的圖像處理函數,將兩張圖片讀入並進行比對。 比如您可以使用 OpenCV 庫將圖片讀入,然後使用 TensorFlow 庫對兩張圖片進行比對。 您可以使用 TensorFlow 的圖像處理函數,例如圖像縮放、旋轉和鏡像轉換等,對兩張圖片進行預處理。接著您可以使用 TensorFlow 中的數值計算函數,例如 mean square error (MSE) 或
    4. Tensorflow裡Estimator介紹
      發表時間: 2023-01-13 下午 4:51下午 4:51
      tf.estimator.Estimator 介紹 官方介紹頁面: https://www.tensorflow.org/guide/estimator tf.estimator.Estimator 與 tf.keras.Model 類似,estimator是模型級別的抽象。tf.estimator提供了一些目前仍在為 tf.keras 開發中的功能。包括: 基於參數服務器的訓練 完整的TFX集成
    5. 梯度下降法介紹
      發表時間: 2023-01-12 下午 6:13下午 6:13
      梯度下降法 梯度下降法(英語:Gradient descent)是一個一階最佳化算法,通常也稱為最陡下降法,但是不該與近似積分的最陡下降法(英語:Method of steepest descent)混淆。 要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行疊代搜索。如果相反地向梯度正方向疊代進行搜索,則會接近函數的局部極大值點;這個
    6. 物體偵測技術介紹
      發表時間: 2023-01-12 上午 11:26上午 11:26
      取得圖片中可能的目標的位置資訊 要讓模型吐出圖片中目標的座標位置資訊,常用的方法是使用目標檢測 (object detection) 的模型,這些模型通常可以同時預測目標的類別 (class) 和座標位置 (bounding box)。 常用的目標檢測模型有 YOLO (You Only Look Once)、SSD (Single Shot MultiBox Detector) 以及 Faste
    7. Dense全連接層介紹
      發表時間: 2023-01-11 下午 6:50下午 6:50
      Tensorflow的全連接層 對Tensorflow而言,全連接層的類別為: tf.keras.layers.Dense 相關介紹: https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense 甚麼是全連接層 在 Dense 層中,每個輸入都會對每個輸出進行綜合計算,得到一個輸出值。這個綜合計算包括了對輸入和前一層輸出的矩陣乘
    8. 如何從預先訓練的模型中提取特徵
      發表時間: 2023-01-11 下午 4:07下午 4:07
      預先訓練的模型中提取特徵的一種常見方法是使用模型的中間層。例如,如果使用卷積神經網絡 (CNN) 來預訓練圖像識別模型,則可以使用 CNN 的某些中間層(如卷積層或池化層)來提取圖像的特徵。 另外,您可以將整個預先訓練的模型看作是一個特徵提取器。 一種方法是將輸入數據丟入預先訓練的模型中,然後使用模型的最後一層輸出 (通常是分類層) 作為特徵。 最後,您還可以使用深度學習框架中內置的函數(如 Ke
    9. 二元分類器 (binary classification) 介紹
      發表時間: 2023-01-11 下午 4:06下午 4:06
      甚麼是二元分類器 二元分類 (binary classification) 是一種機器學習中常見的任務,其目的是從兩個不同類別中將每個數據樣本歸類為其中之一。這種分類方式只有兩個類別,因此其結果是二元的。例如,對於圖像分類問題,二元分類可能用於識別猫和狗的圖像,或者用於識別垃圾郵件和非垃圾郵件的電子郵件。 在二元分類中,我們通常使用一些算法來建立一個模型,如 logistic regression
    10. Tensorflow裡ResNet(殘差網路)的介紹
      發表時間: 2023-01-11 下午 3:46下午 3:46
      殘差網路ResNet 殘差網路(Residual Network,簡稱 ResNet)是一種深度卷積神經網路,它被設計用來解決深度神經網路中的梯度消失問題。 在深度神經網路中,隨著層數的增加,梯度有可能會越來越小,導致模型無法有效地學習。殘差網路通過在每一層中引入一個「殘差块」來解決這個問題。殘差块包含兩個卷積層和一個殘差路徑,殘差路徑將輸入數據直接加到輸出數據上。這樣,當殘差块的輸出數據與輸入數
    11. TensorFlow 開發者認證計劃介紹
      發表時間: 2023-01-11 下午 3:15下午 3:15
      TensorFlow認證計劃課程 以下為介紹網頁 https://www.tensorflow.org/certificate 在這個網頁當中,他們推薦了幾個課程 Udacity 的《TensorFlow 在深度學習中的應用簡介》課程 Coursera 的《DeepLearning.AI TensorFlow Developer 專業證書》 而我選擇了Udacity的課程(因為免費),而且可以有中
    12. 交叉熵相關損失函數的比較
      發表時間: 2023-01-07 上午 6:05上午 6:05
      交叉熵(cross-entropy)是什麼 交叉熵是一種常用的測量兩個概率分布差異的度量。它可以用來衡量預測模型的輸出結果與真實標籤之間的差異,从而作為訓練模型的損失函數。 交叉熵的计算公式如下: H(y, y_pred) = - ∑ y log(y_pred) 其中 y 和 y_pred 分别表示真實標籤的概率分布和預測模型的輸出概率分布。 交叉熵有一些特性,使它特别适用于衡量分類問題中模型的預
    13. 使用數據增強加強圖像辨識準確率
      發表時間: 2023-01-06 下午 6:52下午 6:52
      數據增強 數據增強(Data Augmentation)是一種在不增加真實數據的情況下,通過對現有數據進行變化來增加數據集大小的方法。 請參見: https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator 常見的數據增強技術包括: 尺度變換: 對圖像進行放大或縮小。 旋轉: 對
    14. 模型的權重與偏差值
      發表時間: 2023-01-04 下午 10:27下午 10:27
      神經元的權重與偏差 在神經網絡中,權重 (weight) 和偏差 (bias) 是模型的兩個重要參數。 權重 (weight) 指的是神經網絡中的輸入層和輸出層之間的連接強度。每個神經元都有一個權重矩陣,表示與該神經元相連的輸入張量的強度。輸入張量與輸出張量之間的權重越大,該神經元對輸出的貢獻就越大。 偏差 (bias) 指的是神經網絡中的偏移量。每個神經元都有一個偏差值,表示該神經元的輸出在不考
    15. tensorflew的自動求導機制
      發表時間: 2023-01-04 下午 9:47下午 9:47
      什麼是自動求導機制 在 TensorFlow 中,有一種特殊的張量類型叫做梯度張量,可以用於計算模型的梯度。 TensorFlow 的梯度張量是一種特殊的張量,其中包含了模型中每個變量的梯度信息。梯度張量是 TensorFlow 的自動微分機制的基礎,可以通過 TensorFlow 的自動微分機制來計算模型的梯度。 使用方法介紹 使用 GradientTape 類的方法是: 在計算圖的上下文中創建
    16. 使用model.summary()輸出參數Param計算過程
      發表時間: 2023-01-04 下午 5:58下午 5:58
      使用方式 使用keras構建深度學習模型,我們會通過model.summary()輸出模型各層的參數狀況,如下: [crayon-63e3a7f655647146367375/] 輸出範例 [crayon-63e3a7f65564c656242965/] 參數意義 在這個輸出中,Total params 表示模型的總參數數量,可以用來反推模型的大小。請注意,模型的大小不僅僅是參數數量的函數,還可能
    17. TensorFlow的圖像操作功能筆記
      發表時間: 2023-01-04 下午 5:45下午 5:45
      為什麼要盡量使用Tensorflow的圖像操作功能 因為Tensorflow對GPU的支援度高,盡量完全使用Tensorflow內建的圖像操作功能對圖像做操作,可以避免資料在GPU和CPU之間轉換。 將資料集轉為dataset 可以使用 TensorFlow 的 tf.data.Dataset API 將訓練圖像和標籤轉換為數據集。 首先,需要將訓練圖像和標籤轉換為 TensorFlow 張量:
    18. 限制在Tensorflow跑模型時使用的GPU的記憶體上限?
      發表時間: 2023-01-04 下午 5:06下午 5:06
      使用tensorflow-gpu結果耗一大堆MEMORY是為什麼 使用 TensorFlow GPU 版本會耗費較多的記憶體,這是正常的。因為 GPU 設備有自己的內存,我們可以使用 GPU 設備加速計算。但是,這意味著 GPU 設備的內存也必須足夠大,以便容納計算所需的資料。 如果GPU的記憶體不夠大,則tensorflow會改將原本要放在GPU的記憶體內的資料放到CPU的記憶體裡面,若是CPU
    19. 如何縮小Tensorflow運算模型時使用的記憶體大小
      發表時間: 2023-01-04 下午 3:36下午 3:36
      使用剪枝法 剪枝是一種常用的方法,用於縮小深度學習模型的大小。在剪枝過程中,可以刪除模型中不重要的權重,以縮小模型的大小。 以下是使用 TensorFlow 2.x 的簡單範例,說明如何在深度學習模型中進行剪枝: [crayon-63e3a7f655d37620565486/] 訓練過程中使用正則化 正則化是一種常用的方法,用於防止過擬合,並縮小模型的大小。在 TensorFlow 中,您可以使用
    20. tensorflow和keras版本之間不兼容的錯誤
      發表時間: 2023-01-03 下午 6:08下午 6:08
      更多資訊請見: https://stackoverflow.com/questions/72255562/cannot-import-name-dtensor-from-tensorflow-compat-v2-experimental 編譯器的錯誤訊息 ImportError: cannot import name 'dtensor' from 'tensorflow.compat.v2.exp
    21. 使用GPU跑tensorflow的除錯流程
      發表時間: 2023-01-03 下午 5:06下午 5:06
      最簡單的範例 這邊的程式碼是官網教學裡的一個簡單範例: https://www.tensorflow.org/tutorials/keras/classification?hl=zh-tw [crayon-63e3a7f6563ad687089172/] 使用GPU建模 經過了前三章的教學之後,應該已經設定好了Tensorflow的GPU環境 1. 在python裡面使用GPU 1 – 選擇適合的
    22. 機器學習所需的前置知識
      發表時間: 2023-01-03 下午 1:19下午 1:19
      前置知識介紹 學習機器學習的前置知識包括: 數學基礎:學習機器學習需要具備良好的數學基礎,尤其是線性代數、微積分和概率論的基礎知識。 編程基礎:學習機器學習需要具備編程能力,至少應該熟悉一種編程語言,如 Python、C++ 或 Java。 算法基礎:了解常用的算法和數據結構,如排序算法、搜索算法、哈希表和二叉樹,將有助於學習機器學習中的算法。 機器學習基礎:了解機器學習的基本概念,如訓練集、測試
    23. 深度學習模型-MLP、CNN與 RNN
      發表時間: 2022-12-24 上午 5:42上午 5:42
      常見的深度學習模型 三種深度學習模型,包含: • MIP:多層感知器( Multilayer Perceptron) • CNN :卷積神經網路(Convolutional Neural Network ) • RNN:循環神經網路(Recurrent Neural Netw ork) MLP、CNN與RNN的差異 多層感知器(簡稱 MLP)就是一個全連接網路。在某些文獻裡,它被稱為深度前饋(fe
    24. 訓練模型-model.fit()的參數設定
      發表時間: 2022-12-22 下午 1:45下午 1:45
      model.fit的參數 請見官網介紹: https://www.tensorflow.org/api_docs/python/tf/keras/Model#fit [crayon-63e3a7f656614283340599/] 通常label單類別最後使用softmax當作activation,多類別用sigmoid。在使用model.fit之前可用下列指令來查看模型的資訊: [crayon-
    25. 卷積神經網路CNN介紹
      發表時間: 2022-12-22 上午 11:49上午 11:49
      卷積神經網路CNN 卷積神經網路(Convolutional Neural Network,簡稱 CNN)是一種專門用於圖像處理的神經網路。它包含許多卷積層和池化層,可以捕捉圖像中的空間關係和細節。 卷積層: Conv2D (tf.keras.layers.Conv2D),使用一個卷積核來提取圖片特徵 池化層: MaxPooling2D (tf.keras.layers.MaxPooling2D)
    26. 卷積層(Conv2D)參數設定
      發表時間: 2022-12-22 上午 11:43上午 11:43
      卷積層(Conv2D)介紹 以下為官方介紹連結: https://keras.io/api/layers/convolution_layers/convolution2d/ 參數介紹 參數 常用參數 filters:指定層中濾波器(也稱為卷積核)的數量。通常,增加濾波器的數量可以提高模型的表現,但也會增加計算複雜度。 kernel_size:指定濾波器的大小。濾波器的大小越大,模型可以捕捉到的特徵
    27. 如何提高機器學習的準確率
      發表時間: 2022-12-22 上午 11:28上午 11:28
      提高準確率的方向 可以考慮用以下幾個方式來提高準確率: 增加訓練數據:模型訓練的資料越多,模型就有更多的資訊來學習,因此準確率往往會提高。 調整超參數:你可以調整超參數(例如學習率、損失函數、正則化項等)來提高模型的準確率。 改變模型結構:你可以增加或刪減模型中的層數、增加每層的神經元數量,或者使用不同的激活函數來改變模型的結構。 訓練更長時間:模型訓練的時間越長,模型就有更多的時間來學習,因此準
    28. 準備數據集資料的方針
      發表時間: 2022-12-22 上午 11:15上午 11:15
      如何準備數據集 使用質量高的資料,如:​ 清晰的圖像: 圖像清晰且無模糊或雜訊。​ 正確的標記: 圖像被正確地標記為相應的類別。​ 代表性的數據: 數據集中的數據能夠代表所有可能的輸入圖像,例如不同的角度、光線、尺寸等。​ 避免以下狀況:​ 模糊或不清晰的圖像: 圖像中有大量的模糊或雜訊。​ 錯誤的標記: 圖像被錯誤地標記為其他類別。​ 不代表性的數據: 數據集中的數據只代表一小部分可能的輸入圖像
    29. 如何判讀訓練結果
      發表時間: 2022-12-22 上午 10:39上午 10:39
      訓練過程 下面為一個epochs為10的訓練過程的log 機器學習結果判讀 如上圖,當我們下了model.fit開始跑機器學習後,會可以看到跑出下面這些資訊,這時候要如何解讀這些資訊呢? loss: 0.0337, accuracy: 0.9910, val_loss: 0.1509, val_accuracy: 0.9762​ loss:指的是模型在訓練數據集上的損失。損失越低,代表模型的表現越
    30. Keras介紹
      發表時間: 2022-12-21 下午 2:05下午 2:05
      甚麼是Keras Keras是一個用Python編寫的開源神經網路庫,旨在快速實現深度神經網路,專注於使用者友好、模組化和可延伸性,除標準神經網路外,Keras還支援卷積神經網路和迴圈神經網路。包含許多常用神經網路構建塊的實現,例如層、目標、啟用功能、最佳化器和一系列工具,可以更輕鬆地處理圖像和文字資料。 Keras由純Python編寫而成並基於Tensorflow、Theano以及CNTK後端。