<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用TensorFlow構建機器學習模型

新機器視覺 ? 來源:新機器視覺 ? 2024-01-08 09:25 ? 次閱讀

作者 | Kesk 譯者 | 張健欣 來源| AI前線

在這篇文章中,我將逐步講解如何使用 TensorFlow 創建一個簡單的機器學習模型。

TensorFlow 是一個由谷歌開發的庫,并在 2015 年開源,它能使構建和訓練機器學習模型變得簡單。

我們接下來要建立的模型將能夠自動將公里轉換為英里,在本例中,我們將創建一個能夠學習如何進行這種轉換的模型。我們將向這個模型提供一個 CSV (https://en.wikipedia.org/wiki/Comma-separated_values)文件作為輸入,其中有 29 組已經執行過的公里和英里之間的轉換,基于這些數據,我們的模型將學會自動進行這種轉換。

我們將使用有監督學習算法,因為我們知道數據的輸入和輸出結果。并使用 Python 作為編程語言。Python 提供了一系列與機器學習相關的方便的庫和工具。本例中所有的步驟都是使用 Google Colab 執行的。Google Colab 允許我們在瀏覽器上零配置地編寫和執行 Python 代碼。

導入必需的庫

我們首先導入在我們的例子中將要使用到的庫。

import tensorflow as tf
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

我們將導入 TensorFlow 來創建我們的機器學習模型。

我們還將導入 Pandas 庫來讀取包含有公里和英里轉換數據的 CSV 文件。

最后,我們將導入 Seaborn 和 Matlotlib 庫繪制不同的結果。

加載樣例數據

我們將含有逗號分隔的值的文件(Kilometres-miles.csv)讀取到我們的數據幀中。這個文件包含一系列公里和英里值的轉換。我們將使用這些數據幀來訓練我們的模型。你可以在這個鏈接(https://drive.google.com/file/d/1m63pJA-zUAA12XOCCBt3Aik9fnjrj_8s/view?usp=sharing)下載這個文件。

要從 Google Colab 讀取文件,你可以使用不同的方法。在本例中,我直接將 CSV 文件上傳到我的 Google Colab 上的 sample_data 文件夾中,但你可以從一個 URL 中讀取文件(比如,從 GitHub)。

上傳到 Google Colab 的問題是,數據會在運行時重啟時丟失。

數據幀是二維的大小可變的并且各種各樣的表格數據。

df  = pd.read_csv('/content/sample_data/Kilometres-miles.csv')
df.info
3c6681b6-adb9-11ee-8b88-92fbcf53809c.png

示例數據信息

繪制數據幀

我們將“searborn”庫的“scatterplot”導入并命名為“sns”,然后使用這個庫來繪制上述圖形。它顯示了 X(公里)和 Y(英里)對應關系的圖形化表示。

print("Painting the correlations")
#Once we load seaborn into the session, everytime a matplotlib plot is executed, seaborn's default customizations are added
sns.scatterplot(df['Kilometres'], df['Miles'])
plt.show()
3c6d1b02-adb9-11ee-8b88-92fbcf53809c.png

公里和英里的相關性

我們定義數據幀的輸入和輸出來訓練模型:

X(公里)是輸入,Y(英里)是輸出。

print("Define input(X) and output(Y) variables")
X_train=df['Kilometres']
y_train=df['Miles']
創建神經網絡

現在,讓我們使用“keras.Sequential”方法來創建一個神經網絡,其中依次添加“layers”。每一個層(layer)都具有逐步提取輸入數據以獲得所需輸出的功能。Keras 是一個用 Python 寫的庫,我們創建神經網絡并使用不同的機器學習框架,例如 TensorFlow。

接下來,我們將使用“add”方法向模型添加一個層。

print("Creating the model")
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=1,input_shape=[1]))
創建神經網絡 編譯模型

在訓練我們的模型之前,我們將在編譯步驟中添加一些額外設置。

我們將設置一個優化器和損失函數,它們會測量我們的模型的準確性。Adam 優化是一種基于第一次和第二次矩的自適應預算的隨機梯度下降算法。

為此,我們將使用基于平均方差的損失函數,它測量了我們預測的平均方差。

我們的模型的目標是最小化這個函數。

print("Compiling the model")
model.compile(optimizer=tf.keras.optimizers.Adam(1), loss='mean_squared_error')
訓練模型

我們將使用“擬合(fit)”方法來訓練我們的模型。首先,我們傳入獨立變量或輸入變量(X-Kilometers)和目標變量(Y-Miles)。

另一方面,我們預測 epoch 的數值。在本例中,epoch 值是 250。一個 epoch 就是遍歷一遍所提供的完整的 X 和 Y 數據。

如果 epoch 的數值越小,誤差就會越大;反過來,epoch 的數值越大,則誤差就會越小。

如果 epoch 的數值越大,算法的執行速度就會越慢。

print ("Training the model")
epochs_hist = model.fit(X_train, y_train, epochs = 250)
3c75dc88-adb9-11ee-8b88-92fbcf53809c.png

訓練模型的控制臺

評估模型

現在,我們評估創建的模型,在該模型中,我們可以觀察到損失(Training_loss)隨著執行的遍歷次數(epoch)的增多而減少,如果訓練集數據有意義并且是一個足夠大的組,這是合乎邏輯的。

print("Evaluating the model")
print(epochs_hist.history.keys())


#graph
plt.plot(epochs_hist.history['loss'])
plt.title('Evolution of the error associated with the model')
plt.xlabel('Epoch')
plt.ylabel('Training Loss')
plt.legend('Training Loss')
plt.show()

3c81e73a-adb9-11ee-8b88-92fbcf53809c.png

從圖中我們可以看出,用 250 次訓練模型并沒有多大幫助,在第 50 次遍歷后,誤差并沒有減少。因此,訓練該算法的最佳遍歷數大約是 50。

進行預測

現在我們已經訓練了我們的模型,我們可以使用它來進行預測。

在本例中,我們將 100 賦值給模型的輸入變量,然后模型會返回預測的英里數:

kilometers = 100
predictedMiles = model.predict([kilometers])
print("The conversion from Kilometres to Miles is as follows: " + str(predictedMiles))

從公里到英里的換算為 62.133785.

檢查結果

milesByFormula = kilometers * 0.6214
print("The conversion from kilometers to miles using the mathematical formula is as follows:" + str(milesByFormula))
diference = milesByFormula - predictedMiles
print("Prediction error:" + str(diference))

使用公式從公里到英里的換算值為:62.13999999999999。預測誤差為 0.00621414

總 結

通過本例,我們了解了如何使用 TensorFlow 庫來創建一個模型,這個模型已經學會自動將公里數轉換為英里數,并且誤差很小。

TensorFlow 用于執行此過程的數學非常簡單?;旧?,本例使用線性回歸來創建模型,因為輸入變量(公里數)和輸出變量(英里數)是線性相關的。在機器學習中,過程中最耗時的部分通常是準備數據。

隨著時間的推移,我們收獲了一些經驗,這些經驗可以幫助我們選擇最適合的算法及其設置,但一般來說,這是一項分析測試并改進的任務。

作者介紹

Kesk,軟件工程師,軟件愛好者,科幻作家。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    2746

    瀏覽量

    47799
  • 機器學習
    +關注

    關注

    66

    文章

    8156

    瀏覽量

    130798
  • python
    +關注

    關注

    52

    文章

    4692

    瀏覽量

    83539
  • tensorflow
    +關注

    關注

    13

    文章

    313

    瀏覽量

    60291

原文標題:如何使用TensorFlow構建機器學習模型

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于 TensorFlow

    在沒有特殊硬件的前提下,在你的筆記本上跑一下機器學習的新想法?Tensorflow可以辦到這點。準備將你的訓練模型在多個CPU上規?;\算,又不想修改代碼?
    發表于 03-30 19:57

    tensorflow機器學習日志

    tensorflow學習日志(四)機器學習(泛化,過擬合, 數據集,驗證集,測試集)
    發表于 04-14 06:32

    淺談深度學習TensorFlow

    愛好者和工程師的最愛。主要原因在于現代計算能力的可用性,如 GPU 和 TensorFlow 等工具,可以通過幾行代碼輕松訪問 GPU 并構建復雜的神經網絡。作為一名機器學習愛好者,
    發表于 07-28 14:34

    labview測試tensorflow深度學習SSD模型識別物體

    安裝labview2019 vision,自帶深度學習推理工具,支持tensorflow模型。配置好python下tensorflow環境配置好object_detection API
    發表于 08-16 17:21

    labview+yolov4+tensorflow+openvion深度學習

    缺陷檢測主要知識點:1Tensorflow-GPU環境的搭建Tensorflow object環境搭建學會如何標注圖片如何labview快速通過遷移學習訓練自己的模型如何利用labvi
    發表于 05-10 22:33

    labview調用深度學習tensorflow模型非常簡單,附上源碼和模型

    本帖最后由 wcl86 于 2021-9-9 10:39 編輯 `labview調用深度學習tensorflow模型非常簡單,效果如下,附上源碼和訓練過的模型:[hide][/h
    發表于 06-03 16:38

    Mali GPU支持tensorflow或者caffe等深度學習模型

    Mali GPU 支持tensorflow或者caffe等深度學習模型嗎? 好像caffe2go和tensorflow lit可以部署到ARM,但不知道是否支持在GPU運行?我希望把訓
    發表于 09-16 14:13

    部署基于嵌入的機器學習模型

    還需要處理模型的更新。模型更新的速度甚至可以非常高,因為模型需要定期地根據最新的數據進行再訓練?! ”疚膶⒚枋鲆环N更復雜的機器學習系統的一般
    發表于 11-02 15:09

    如何才能正確的構建機器學習模型

    組織構建一個可行的、可靠的、敏捷的機器學習模型來簡化操作和支持其業務計劃需要耐心、準備以及毅力。各種組織都在為各行業中的眾多應用實施人工智能項目。這些應用包括預測分析、模式識別系統、自
    發表于 01-11 19:25 ?14次下載

    使用TensorFlow建立深度學習機器學習網絡

    教你使用TensorFlow建立深度學習機器學習網絡。
    發表于 03-26 09:44 ?18次下載

    六個構建機器學習模型需避免的錯誤

    近年來,機器學習在學術研究領域和實際應用領域得到越來越多的關注。但構建機器學習模型不是一件簡單的
    發表于 05-05 16:39 ?1290次閱讀

    輕松入門,高效成長: "TensorFlow 機器學習技能解鎖季"

    體系,體驗 TensorFlow 的最佳實踐模式? 《 TensorFlow 入門實操課程》 帶你零基礎快速上手 想高效實踐機器學習模型部署
    的頭像 發表于 11-10 11:35 ?605次閱讀

    機器學習構建ML模型實踐

    實踐中的機器學習構建 ML 模型
    的頭像 發表于 07-05 16:30 ?480次閱讀

    深度學習框架tensorflow介紹

    。TensorFlow可以用于各種不同的任務,包括圖像和語音識別、自然語言處理和推薦系統等。 TensorFlow提供了一個靈活和強大的平臺,可以用于構建和訓練各種深度學習
    的頭像 發表于 08-17 16:11 ?1771次閱讀

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發的用于機器學習和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow是一個開源的
    的頭像 發表于 03-01 16:25 ?289次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>